1 / 43

Podstawy programowania II

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

cadee
Download Presentation

Podstawy programowania II

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Zachodniopomorska Szkoła Biznesu Podstawy programowania II Wykład 2: Biblioteka stdio.h

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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

  17. Przykłady pól dla liczb całkowitych Podstawy programowania II - Biblioteka stdio.h

  18. Przykłady pól dla liczb rzeczywistych Podstawy programowania II - Biblioteka stdio.h

  19. 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

  20. 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

  21. 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

  22. 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

  23. 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

  24. 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

  25. 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

  26. 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

  27. 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

  28. 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

  29. 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

  30. 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

  31. 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

  32. 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

  33. 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

  34. 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

  35. 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

  36. 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

  37. 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

  38. 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

  39. 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

  40. 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

  41. 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

  42. 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

  43. 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.

More Related