430 likes | 589 Views
Zachodniopomorska Szkoła Biznesu. Podstawy programowania II. Wykład 2: Biblioteka stdio.h. Charakterystyka biblioteki stdio.h. Nazwa pochodzi od St an d ard I nput - O utput Realizuje zadania związane z obsługą wejścia - wyjścia, np.: Wczytywanie danych z klawiatury
E N D
Zachodniopomorska Szkoła Biznesu Podstawy programowania II Wykład 2: Biblioteka stdio.h
Charakterystyka biblioteki stdio.h • Nazwa pochodzi od Standard Input - Output • Realizuje zadania związane z obsługą wejścia - wyjścia, np.: • Wczytywanie danych z klawiatury • Wyświetlanie danych na ekranie monitora • Wprowadzanie i wyprowadzanie danych poprzez porty komputera, np. drukowanie na drukarce • Odczyt danych z pliku dyskowego • Zapis do pliku dyskowego • Biblioteka ta należy do standardu ANSI i dołączana jest praktycznie do wszystkich kompilatorów C/C++. Zapewnia więc wysoką przenośność kodu • W stdio.h wszystkich operacji we/wy dokonuje się na tzw. strumieniach (ang. stream) odpowiadających poszczególnym urządzeniom wejścia/wyjścia Podstawy programowania II - Biblioteka stdio.h
Strumienie • Strumień to abstrakcyjne urządzenie wejścia-wyjścia, które pozwala na pobieranie z niego danych lub wysyłanie danych do niego • Celem jest uniezależnienie programisty od sprzętu, a nawet od jego rodzaju. Np. wysyłanie danych na ekran (tekstowy), do pliku dyskowego czy na drukarkę powinno być realizowane tymi samymi funkcjami i to niezależnie od sprzętu. • Realizację operacji wejścia wyjścia dopasowaną do danego urządzenia zapewniają już funkcje biblioteczne w zależności od właściwości użytego strumienia. Podstawy programowania II - Biblioteka stdio.h
Standardowy strumień wyjściowy • stdout - domyślny, predefiniowany strumień, do którego program wysyła informacje tekstowe • Zwykle jest on związany z ekranem monitora lub oknem tekstowym (tzw. konsola) w graficznym systemie operacyjnym • System operacyjny umożliwia jednak podczas uruchamiania programu przekierowanie, zmianę standardowego urządzenia wyjściowego na inne, np. plik, drukarkę • Na przykład komenda (DOS)dir > plik.txtspowoduje zapis listy plików z aktualnego katalogu do pliku tekstowego plik.txt zamiast na ekran. • Wiele funkcji z biblioteki stdio.h realizuje wydruk do stdout, co w zasadzie oznacza wydruk na ekranie, ale umożliwia także przekierowanie podczas uruchamiania programu Podstawy programowania II - Biblioteka stdio.h
Funkcje wyjścia • Wysyłanie pojedynczego znaku: putchar (do stdout) fputc (do dowolnego strumienia) putc (do dowolnego strumienia) • Wysyłanie ciągu znaków (stringu): puts (do stdout) fputs (do dowolnego strumienia) • Formatowane wyjście: printf (do stdout) fprintf (do dowolnego strumienia) sprintf (do stringu) Podstawy programowania II - Biblioteka stdio.h
Funkcja putchar • Wysyła pojedynczy znak do stdout. • Prototyp: int putchar (int znak); • Parametry: • znakkod ASCII znaku, który ma być wysłany. • Zwracana wartość W przypadku powodzenia, funkcja zwraca wartość znak.W przypadku błędu zwracana jest wartość EOF (stała ta zdefiniowana jest przez bibliotekę stdio.h) • Przykłady putchar(65); // Znak A putchar('B'); // putchar('\n'); // Znak końca linii Podstawy programowania II - Biblioteka stdio.h
Funkcja puts • Wysyła string do stdout dodając na końcu znak nowej linii. • Prototyp: int puts (char *tekst); • Parametry: • tekstwskaźnik do stringu zakończonego znakiem '\0'. • Zwracana wartość W przypadku powodzenia zwracana jest wartość nieujemna.W przypadku błędu zwracana jest wartość EOF. • Przykłady puts("Hello"); char *tekst="world!"; puts(tekst); //'world!' pojawi się pod 'Hello' if (puts("Abrakadabra")==EOF) // kontrola błędu puts ("Błąd!"); Podstawy programowania II - Biblioteka stdio.h
Przykład użycia puts i putchar void main() { char tekst[5]= { 'A','B',0, 'C','D' }; // wyświetlenie stringu aż do znaku '\0' puts(tekst);// wyświetlone znaki: AB\n // wyświetlenie wszystkich znaków z tablicy for (int i=0; i<5; i++) putchar(tekst[i]); // wyświetlone znaki : AB\0CD } Podstawy programowania II - Biblioteka stdio.h
Funkcja printf i jej pochodne • Funkcje: printf, sprintf, fprintf itp. służą do tworzenia i wysyłania (wyświetlania) tekstu złożonego z wielu elementów, takich jak: • znaki (w tym znaki specjalne) • ciągi znaków (zakończone znakiem '\0') • liczby całkowite • liczby zmiennoprzecinkowe • adresy • Funkcje te dokonują automatycznej konwersji każdej z powyższych danych na gotowy ciąg znaków oraz wysyłają go we wskazane miejsce (np. na ekran, do stringu lub do pliku) • Umożliwiają elastyczne formatowanie poszczególnych pól, co pozwala programiście na kontrolę wyglądu i układu tekstu Podstawy programowania II - Biblioteka stdio.h
Funkcja printf • Wysyła sformatowany tekst do stdout. • Prototyp:int printf (char *format, lista_argumentów);int printf (char *format, ...); // formalnie • Parametry: • formattzw. string formatu, definiujący treść i format wyświetlanego tekstu, w którym można umieścić tzw. pola • lista argumentówciąg wyrażeń oddzielonych przecinkami, odpowiadających poszczególnym polom w formacie.Liczba wyrażeń w liście argumentów powinna odpowiadać liczbie pól w formacie. W szczególności lista może być pusta. • Zwracana wartośćFunkcja zwraca całkowitą liczbę wysłanych znaków.W przypadku błędu zwracana jest wartość ujemna. Podstawy programowania II - Biblioteka stdio.h
String formatu • Składa się z dowolnych znaków, z których większość jest wysyłana bezpośrednio na wyjście. • Jeżeli w tekście wystąpi znak %, oznacza on pole, które będzie wypełnione wartością odpowiedniego argumentu, zgodnie z opisem formatu następującym po znaku %. • Kolejność argumentów odpowiada kolejności pól w formacie. • Przykład: printf ("Ala ma %d koty i %d psy.", 2, 3); Ala ma koty i psy. 2 3 Podstawy programowania II - Biblioteka stdio.h
Opis pola w formacie printf • Typ - element obowiązkowy pola informujący o rodzaju wyświetlanej wartości (np. czy jest to liczba dziesiętna czy szesnastkowa, całkowita czy zmiennoprzecinkowa, czy może ciąg znaków). Pola opcjonalne: • Flagi - określają niektóre szczegóły wyświetlania • Szerokość - minimalna liczba znaków przeznaczonych na wydruk wartości pola • Precyzja - dla liczb zmiennoprzecinkowych wyznacza liczbę miejsc po przecinku • Rozmiar - informuje o rozmiarze interpretowanego argumentu (np. short/int/long lub double/long double ) Podstawy programowania II - Biblioteka stdio.h
Wyświetlanie znaków • Kod pola: c Odpowiedni argument funkcji printf powinien być typu char. Zostanie on potraktowany jako kod ASCII znaku do wysłania (wyświetlenia). W przypadku podania wartości typu całkowitego, zostanie wyświetlony znak odpowiadający jej modulo 256 • Przykłady:printf ("Litera %c.",'A');printf ("Litera %c i %c.",65, 66+256); // 2 pola Litera A. Litera A i B. Podstawy programowania II - Biblioteka stdio.h
Wyświetlanie stringów • Kod pola: s Odpowiedni argument funkcji printf musi być typu char *,a więc tablicą znaków, wskaźnikiem na znak lub bezpośrednio stringiem. Wyświetlone zostaną wszystkie znaki aż do najbliższego napotkanego znaku '\0'. • Przykłady:printf ("Powiem Ci: %s", "Cześć!");Powiem Ci: Cześć!char agent[]="Bond"; char *tekst=agent; printf ("Nazywam się %s, %s%s.", agent, "James", tekst); Nazywam się Bond, JamesBond. Podstawy programowania II - Biblioteka stdio.h
Wyświetlanie liczb całkowitych • Kod pola d lub i: liczba całkowita dziesiętna ze znakiem Argument powinien być liczbą całkowitą ze znakiem.Dla zbyt dużej wartości unsigned wynik będzie błędny. • Kod poda u: nieujemna liczba dziesiętna (unsigned) Dla wartości ujemnej wynik będzie błędny. • Kod poda x lub X: nieujemna liczba szesnastkowa (unsigned) Dla wartości ujemnej wynik będzie błędny.Dla pola x użyte będą cyfry a...f, dla pola X - A...F. • Kod poda o : liczba ósemkowa ze znakiem Argument powinien być liczbą całkowitą ze znakiem.Dla zbyt dużej wartości unsigned wynik będzie błędny. • Dla wszystkich powyższych rodzajów pól, podanie argumentu zmiennoprzecinkowego spowoduje wyświetlenie błędnej wartości Podstawy programowania II - Biblioteka stdio.h
Wyświetlanie liczb rzeczywistych • Kod pola e lub E: liczba rzeczywista w notacji naukowej Argument powinien być liczbą zmiennoprzecinkową.Jeżeli typ wartości będzie całkowity, wynik może być błędny. Wartość zostanie wyświetlona w tzw. notacji naukowej, z użyciem znaku e lub E (np. 1.344E-14) • Kod poda f : liczba rzeczywista Argument jak wyżej.Wartość zostanie wyświetlona w zwykły sposób, z kropką dziesiętną, zazwyczaj ze stałą liczbą cyfr po kropce • Kod pola g lub G: liczba rzeczywista Argument jak wyżej.Wartość zostanie wyświetlona w notacji naukowej lub zwykłej, w sposób najkrótszy z możliwych Podstawy programowania II - Biblioteka stdio.h
Przykłady pól dla liczb całkowitych Podstawy programowania II - Biblioteka stdio.h
Przykłady pól dla liczb rzeczywistych Podstawy programowania II - Biblioteka stdio.h
Wyświetlanie adresów • Kod pola: p Argument powinien być wskaźnikiem na dowolny typ danych. Wyświetlony zostanie adres fizyczny na który wskazuje wskaźnik, w postali liczby szesnastkowej. Zakres możliwych adresów i sposób ich prezentacji zależy od kompilatora i od tego na jaki system operacyjny tworzony jest program. • Przykład int tab[10];printf ("Adres tablicy: %p.", tab); Podstawy programowania II - Biblioteka stdio.h
Znaki specjalne • Szereg znaków sprawia kłopoty z zapisem wewnątrz stringu ze względu na ich specjalne znaczenie w składni języka C++: • " zapisuje się jako: \" • ' zapisuje się jako: \' • \ zapisuje się jako: \\ • (TAB) zapisuje się jako: \t • (NEWLINE) zapisuje się jako: \n • Z powodu użycia znaku % jako oznaczenia pola w stringu formatu funkcji printf, w celu jego wyświetlenia przez tę funkcję należy użyć sekwencji: %%. Podstawy programowania II - Biblioteka stdio.h
Szerokość pola • Liczba znaków poświęconych na wyświetlenie polaJeżeli wyświetlana wartość składa się w rzeczywistości z mniejszej liczby znaków, brakujące uzupełniane są domyślnie za pomocą spacji z lewej strony • Przykłady: printf ( "Liczba:%4d," , -1 );printf ( "Liczba:%4d," , 100 );printf ( "Liczba:%4f," , -1.1 );printf ( "Imię:%10s." , "Piotr" ); Liczba: -1, // dopisane 2 spacjeLiczba: 100, // dopisana 1 spacjaLiczba:-1.1, // brak dopisanych spacjiImię: Piotr. // dopisane 5 spacji Podstawy programowania II - Biblioteka stdio.h
Precyzja • W przypadku liczb zmiennoprzecinkowych pozwala ustalić wyświetloną liczbę cyfr po przecinku • Jeżeli liczba posiada więcej cyfr po przecinku - nastąpi zaokrąglenie do najbliższej wartości • Jeżeli liczba posiada mniej cyfr po przecinku - zostaną uzupełnione zerami • Jeżeli nie określono precyzji - użyta zostanie domyślna • Przykłady: printf ( "Liczba pi:%.2f," , 3.1415 );printf ( "Liczba e :%10.2e," , 2.7182 );printf ( "Liczba -1:%6.2f," , -1.0 ); Liczba pi:3.14, Liczba e : 2.72e+00, // dopisane 2 spacjeLiczba 0 : -1.00, // dopisana 1 spacja Podstawy programowania II - Biblioteka stdio.h
Rozmiar argumentu • Element ten pozwala sprecyzować liczbę bitów, na jakiej zapisano argument. • Bywa to konieczne w przypadku wyświetlania wartości o dużych zakresach, np. long, double, long double • Wartości: • h: Dla pól (d, i, o, u, x, X) - short int • l: Dla pól (d, i, o, u, x, X) - long intDla pól (f, e, E, g, G) - double • L: Dla pól (f, e, E, g, G) - long double • Przykład: printf ( "Duża liczba:%lu." , 4000000000 ); Duża liczba: 4000000000. Podstawy programowania II - Biblioteka stdio.h
Flagi • Pozwalają sterować dodatkowymi możliwościami formatowania • Wartości: • - Wyrównuje tekst do lewej strony pola, dopisywane znaki (np. spacje) pojawiają się po prawej stronie pola • + Dla pól liczbowych - liczby dodatnie będą wypisane ze znakiem '+' na początku • (spacja) Dla pól liczbowych - liczby dodatnie będą wypisane z dodatkowym znakiem spacjina początku (zamiast znaku) • 0 Tekst uzupełniany jest znakami '0' zamiast spacji jeżeli wymaga tego szerokość pola • Przykład: printf ( "%+08.2f," , 40.1 ); +0040.10 Podstawy programowania II - Biblioteka stdio.h
Przykłady użycia printf printf ("Ala ma kota."); printf ("%s %c. ma %d koty.\n", "Paweł", 'A', 2); float tab[5]={0.01, -0.1, 10, -100, 100.01}; for (int i=0; i<5; i++) printf("Liczba %d: %+7.2f\n", i+1, tab[i]); Ala ma kota. Paweł A. ma 2 koty.Liczba 1: +0.01Liczba 2: -0.10Liczba 3: +10.00Liczba 4: -100.00Liczba 5: +100.01_ Przykład: printf.cpp Podstawy programowania II - Biblioteka stdio.h
Zalety i wady funkcji printf • Zalety: • Zwięzłość zapisu • Duża elastyczność i łatwość formatowania • Przenośność • Wady: • Konieczność informowania o typie każdego argumentu(nie ma jej np. dla cout) • Brak kontroli zgodności rodzaju pól z typami argumentów • Stosunkowo niska czytelność kodu Podstawy programowania II - Biblioteka stdio.h
funkcje pochodne od printf • Umieszczenie tekstu sformatowanego w stringu int sprintf(char *buf, char *format, ...); UWAGA! Pamięć wskazywana przez buf musi być wcześniej pobrana, na przykład jako deklaracja tablicy. • Wysłanie tekstu sformatowanego do podanego strumienia int fprintf(FILE *strumień, char *format, ...); UWAGA! strumień musi być uprzednio przygotowany do odbioru danych, czyli otwarty. • Wersje funkcji printf z mechanizmem tzw. zmiennej liczby argumentów (dla zaawansowanych) • Wynik do stdoutint vprintf(char *format, ...); • Wynik do stringuint vsprintf(char *buf, char *format, ...); • Wynik do plikuint vfprintf(FILE *buf, char *format, ...); Podstawy programowania II - Biblioteka stdio.h
Standardowy strumień wejściowy • stdin - domyślny, predefiniowany strumień, z którego program pobiera informacje tekstowe • Zwykle jest on związany z klawiaturą • System operacyjny umożliwia jednak podczas uruchamiania programu przekierowanie, zmianę standardowego urządzenia wyjściowego na inne, np. plik • Na przykład komenda (DOS)program.exe < plik.txtspowoduje, że uruchamiany program zamiast z klawiatury zacznie pobierać informacje z pliku tekstowego plik.txt • Wiele funkcji z biblioteki stdio.h realizuje odczyt z stdout, co w zasadzie oznacza odczyt z klawiatury, ale umożliwia także przekierowanie podczas uruchamiania programu Podstawy programowania II - Biblioteka stdio.h
Funkcje wejścia • Wprowadzanie pojedynczego znaku:getchar (z stdin)fgetc (z dowolnego strumienia)getc (z dowolnego strumienia) • Wprowadzanie ciągu znaków (stringu):gets (z stdin)fgets (z dowolnego strumienia) • Formatowane wejście: scanf (z stdin)fscanf (z dowolnego strumienia)sscanf (ze stringu) Podstawy programowania II - Biblioteka stdio.h
Funkcja getchar • Wprowadza pojedynczy znak z stdin. • Prototyp: int getchar (); • Zwracana wartość W przypadku powodzenia, funkcja zwraca kod odczytanego znaku jako typ int.W przypadku błędu zwracana jest wartość EOF (stała zdefiniowana przez bibliotekę stdio.h) • Przykład int kod=getchar(); printf("Podany znak to %c.\n", kod); getchar(); // czekanie na ENTER Podstawy programowania II - Biblioteka stdio.h
Funkcja gets • Wprowadza pod podany adres jedną linię tekstu (do najbliższego znaku nowej linii) z stdin (domyślnie z klawiatury) zastępując znak nowej linii znakiem '\0'. • Prototyp: char *gets (char *buf); • Parametry: • bufwskaźnik do fragmentu pamięci przeznaczonego na tekst. • Zwracana wartość: W przypadku powodzenia zwracany jest wskaźnik równy buf.W przypadku błędu zwracana jest wartość NULL (czyli 0). • Przykłady char adres[256];gets(adres);printf("Twój adres: %s\n", adres); Podstawy programowania II - Biblioteka stdio.h
Problem alokacji pamięci • Wskaźnik podawany jako parametr w wielu funkcjach wejścia wskazuje miejsce w pamięci przeznaczone do umieszczenia danych. Miejsce to musi zostać uprzednio pobrane od systemu, • Wskaźnik powinien więc w tej sytuacji być "ustawiony" na istniejącą zmienną (tablicę) • Ponieważ nazwa tablicy jest wskaźnikiem na jej początek, można podać tę nazwę jako parametr. • Typowy błąd, jaki można popełnić korzystając ze zmiennej wskaźnikowej: char * wsk; gets(wsk); // przypadkowe miejsce !!! • Prawidłowe rozwiązanie: char tab[100]; char *wsk = tab; // ustawienie wskaźnika! gets(wsk); // lub: gets(tab); Podstawy programowania II - Biblioteka stdio.h
Funkcja scanf • Wprowadza sformatowane dane z stdin. • Prototyp:int scanf (char *format, lista_wskaźników); • Parametry: • formatstring definiujący oczekiwany format tekstu, w tym liczbę i rodzaj pól (wprowadzanych danych), • lista wskaźnikówciąg wyrażeń o typie wskaźnikowym, oddzielonych przecinkami, odpowiadających poszczególnym polom w formacie.Liczba wyrażeń w liście wskaźników powinna odpowiadać liczbie pól w formacie. W szczególności lista może być pusta. • Zwracana wartośćFunkcja zwraca liczbę prawidłowo odczytanych pól.W przypadku błędu uniemożliwiającego odczyt, zwra EOF. Podstawy programowania II - Biblioteka stdio.h
String formatu dla scanf • Odzwierciedla oczekiwany format tekstu na wejściu. Może się składać z elementów: • spacja lub tabulacja (tzw. whitespace) - dowolna liczba znaków spacji, tabulacji lub nowej linii zostanie odczytana i zignorowana • znak % i następujący po nim opis pola - oczekiwana jest dana określonego rodzaju i formatu. Jeżeli tekst nie będzie odpowiadał formatowi, odczyt zostanie przerwany. • inny znak - na wejściu oczekiwany jest dokładnie ten znak, jeżeli pojawi się inny, odczyt zostanie przerwany. • Przerwanie odczytu oznacza, że pozostałe znaki, począwszy od pierwszego niepasującego, pozostają nadal na wejściu • Przykłady stringu formatu: "%f PLN" // np.: "345.4 PLN""%2d-%2d-%4d" // np.: 10-10-2008 Podstawy programowania II - Biblioteka stdio.h
Opis pola w formacie scanf • Typ - element obowiązkowy pola informujący o rodzaju odczytywanej wartości (np. czy jest to liczba dziesiętna czy szesnastkowa, całkowita czy zmiennoprzecinkowa, czy może ciąg znaków). Pola opcjonalne: • * - odczytanie wartości pola bez zapisu do pamięci,Nie należy podawać wskaźnika dla tego pola • Szerokość - maksymalna interpretowana liczba znaków dla pola • Rozmiar - informuje o rozmiarze zmiennej przeznaczonej do zapisu pola (np. short/long lub float/double) Podstawy programowania II - Biblioteka stdio.h
Wprowadzanie znaków • Kod pola: c Odpowiedni wskaźnik powinien być typu char *. • Przykłady: char plec;printf("Podaj płeć (K/M): ");scanf ("%c", &plec); // & - pobranie adresuPodany przez użytkownika znak zostanie umieszczony w zmiennej plec. char kod[4];printf("Podaj 4-znakowy kod: ");scanf ("%4c", kod);Podany przez użytkownika 4-znakowy kod zostanie umieszczony począwszy od wskaźnika kod.Na końcu nie zostanie umieszczony znak '\0' Podstawy programowania II - Biblioteka stdio.h
Wprowadzanie stringów • Kod pola: s Odpowiedni wskaźnik funkcji musi być typu char * i wskazywać na pobrany od systemu fragment pamięci (tablicę). Wczytane zostaną wszystkie znaki aż do pierwszego napotkanego odstępu (spacja, tabulacja lub nowa linia).Na końcu automatycznie dołączony zostanie znak '\0'. • Przykład:char nazwisko[20];scanf ("%19s", nazwisko); // max 19 znaków Podstawy programowania II - Biblioteka stdio.h
Wprowadzanie liczb całkowitych • Kod pola d: liczba całkowita dziesiętna, może zawierać znak +/-. Wskaźnik powinien być typu int * • Kod poda u: nieujemna liczba dziesiętna (unsigned)Wskaźnik powinien być typu unsigned int * • Kod poda x lub X: liczba całkowita szesnastkowaWskaźnik powinien być typu int * • Kod poda o : liczba całkowita ósemkowa Wskaźnik powinien być typu int * • Dla wszystkich powyższych rodzajów pól, podanie przez użytkownika kropki dziesiętnej lub innego nieodpowiedniego znaku zakończy odczyt pola Podstawy programowania II - Biblioteka stdio.h
Wprowadzanie liczb rzeczywistych • Kod pola e, E, f , g, G:Liczba rzeczywista w dowolnej notacji. Może zawierać:- znak +/-,- kropkę dziesiętną,- znak E lub e, po którym powinna występować liczba całkowita (która również może zawierać znak +/-) Podstawy programowania II - Biblioteka stdio.h
Rozmiar argumentu • Element ten pozwala sprecyzować liczbę bitów, na jakiej zapisana zostanie odczytana wartość. • W przypadku niesprecyzowania rozmiaru, domyślnymi typami danych są int (pola d, o), unsigned int (pola u, x, X), oraz float (pola e, E, f, g, G) • Oznaczenie: • h: Dla pól (d, o, u, x, X) - (unsigned) short int • l: Dla pól (d, o, u, x, X) - (unsigned)long intDla pól (f, e, E, g, G) - double • L: Dla pól (f, e, E, g, G) - long double • Przykład: unsigned long int liczba;printf ("Podaj dużą liczbę całkowitą:");scanf("%lu", &liczba);scanf("%u", &liczba); // Zapis połowy bitów! Podstawy programowania II - Biblioteka stdio.h
Przykłady użycia scanf int i,n;float f, wsp[3];char tab[10]; printf ("Podaj liczbę całkowitą:");scanf("%d", &i); printf ("Podaj współrzędne 3D:");scanf("%f , %f , %f", wsp, wsp+1, wsp+2); float tab[3];printf ("Podaj 1-3 liczb (na końcu 'x')"); n=scanf("%f %f %f", tab, tab+1, tab+2);printf ("Podałeś %d liczb!\n", n); Podstawy programowania II - Biblioteka stdio.h
Funkcje pochodne od scanf • Odczyt sformatowanego tekstu ze stringu: int sscanf(char *buf, char *format, ...); • buf wskazuje na początek interpretowanego tekstu, który powinien być zakończony znakiem '\0' • Odczyt sformatowanego tekstu z podanego strumienia: int fscanf(FILE *strumień, char *format, ...); UWAGA! Strumień (np. plik na dysku) musi być uprzednio otwarty. Podstawy programowania II - Biblioteka stdio.h
printf ("Dziękuję za %s i ", "uwagę");printf ("zapraszam na %d wykład.\n", 3); czyli ... Dziękuję za uwagę i zapraszam na 3 wykład.