Kurs programowania w C cz. 56

Nasza ocena:

5
Pobrań: 7
Wyświetleń: 588
Komentarze: 0
Notatek.pl

Pobierz ten dokument za darmo

Podgląd dokumentu
Kurs programowania w C cz. 56 - strona 1

Fragment notatki:

70 ROZDZIAŁ 10. PODSTAWOWE PROCEDURY WEJŚCIA I WYJŚCIA rozumiesz — pojęcia takie jak tablica czy ciąg znaków staną się dla Ciebie jasne w miarę czytania kolejnych rozdziałów. W linijce 2 wywołujemy funkcję scanf(), która odczytuje tekst ze standardowego wejścia. Nie zna ona jednak rozmiaru tablicy i nie wie ile znaków może ona przechować przez co będzie czytać tyle znaków, aż napotka biały znak (format %s nakazuje czytanie pojedynczego słowa), co może doprowadzić do przepełnienia bufora. Niebezpieczne skutki czegoś takiego opisane są w rozdziale poświęconym  napisom.  Na chwilę obecną musisz zapamiętać, żeby zaraz po znaku pro- centu podawać maksymalną liczbę znaków, które może przechować bufor, czyli liczbę o jeden mniejszą, niż rozmiar tablicy. Bezpieczna wersją powyższego kodu jest: #include  int main(void) { char tablica[100]; scanf("%99s", tablica); return 0; } Funkcja scanf() zwraca liczbę poprawnie wczytanych zmiennych lub EOF jeżeli nie ma już danych w strumieniu lub nastąpił błąd. Załóżmy dla przykładu, że chcemy stworzyć program, który odczytuje po kolei liczby i wypisuje ich 3 potęgi. W pew- nym momencie dane się kończą lub jest wprowadzana niepoprawna dana i wówczas nasz program powinien zakończyć działanie. Aby to zrobić, należy sprawdzać wartość zwracaną przez funkcję scanf() w warunku pętli: #include  int main(void) { int n; while (scanf("%d", &n)==1) { printf("%d\n", n*n*n); } return 0; } Podobnie możemy napisać program, który wczytuje po dwie liczby i je sumuje: #include  int main(void) { int a, b; while (scanf("%d %d", &a, &b)==2) { printf("%d\n", a+b); } return 0; } Rozpatrzmy teraz trochę bardziej skomplikowany przykład. Otóż, ponownie jak poprzednio nasz program będzie wypisywał 3 potęgę podanej liczby, ale tym razem ... zobacz całą notatkę



Komentarze użytkowników (0)

Zaloguj się, aby dodać komentarz