1 ELEMENTARZ
W naszym przykładzie występuje sekwencja \n, która - zgodnie z notacją języka C - reprezentuje znak nowego wiersza; znak ten powoduje przerwanie wypisywania w bieżącym wierszu i wznowienie wypisywania od lewego marginesu w następnym wierszu. Jeśli opuścisz \n (pożyteczny eksperyment), to okaże się, że po wypisaniu tekstu nie nastąpi przejście do nowego wiersza. Jedynym sposobem uzyskania znaku nowego wiersza w argumencie printf jest użycie sekwencji\n; jeśli spróbujesz czegoś takiego, jak
printf ("ahoj, przygodo
to kompilator języka C wypisze komunikat o błędzie.
Funkcja printf nigdy nie dostawia automatycznie znaku nowego wiersza, wywołując ją wielokrotnie można więc stopniowo budować jeden wiersz wyniku. Zatem nasz pierwszy program da się napisać również w postaci
#include <stdio.h>
main()
printffahoj, ”); printf ("przygodo”); printf (”\n”);
a wynik będzie identyczny.
Zwróć uwagę na to, że sekwencja\n reprezentuje tylko jeden znak. Takie sekwencje specjalne, jak\n, stanowią uniwersalny aparat pozwalający reprezentować znaki nie-graficzne lub trudne do uzyskania. W języku C między innymi występują sekwencje: \t dla znaku tabulacji,\b dla znaku cofania (ang. backspace),\’ dla znaku cudzysłowu oraz \\ dla samego (jednego) znaku \ (ang. backslash). Kompletną listę sekwencji specjalnych znajdziesz się w p. 2.3.
Ćwiczenie 1.1. Wykonaj program wypisujący tekst „ahoj, przygodo"' pod kontrolą Twojego systemu operacyjnego. Spróbuj opuszczać fragmenty programu, aby poznać komunikaty o błędach.
Ćwiczenie 1.2. Spróbuj sprawdzić, co się stanie, gdy w argumencie funkcji printf wystąpi sekwencja \c, w której c jest dowolnym znakiem różnym od wyżej wymienionych.
Kolejny program wypisuje następujące zestawienie temperatur w skali Fahrenheita i ich odpowiedników w (stustopniowej) skali Celsjusza, wyliczonych według wzoru C=(5/9)(F-32):
0 |
-17 |
20 |
-6 |
40 |
4 |
60 |
15 |
80 |
26 |
100 |
37 |
120 |
48 |
140 |
60 |
160 |
71 |
180 |
82 |
200 |
93 |
220 |
104 |
240 |
115 |
260 |
126 |
280 |
137 |
300 |
148 |
Sam program ciągle składa się z definicji jednej funkcji o nazwie main. Jest on dłuższy niż program wypisujący tekst „ahoj, przygodo”, ale nie jest bardziej skomplikowany. Wprowadzono w nim kilka nowych pojęć, jak komentarze, deklaracje, zmienne, wyrażenia arytmetyczne, pętle i formatowane wypisywanie danych.
#include <stdio.h>
I* wypisz zestawienie temperatur Fahrenheita-Celsjusza
dla f = 0, 20..... 300 */
main()
int fahr, celsius; int lower, upper, step;
lower = 0; /* dolna granica temperatur */
upper = 300; /* górna granica */ step = 20; /* rozmiar kroku */
27