38951

38951



71


FUNKCJE WEJŚCIA

musi ignorować błędne dane (tzn. pomijać ciągi znaków, które nic są liczlHimi) i kończyć działanie tylko w momencie, gdy nastąpi błąd odczytu lub koniec pliku'1.

#include <stdio.h>

int main(void)

{

int result, n; do {

result ■ scanf ("*/,d", ftn); if (result««l) {

printf ("7.d\n" , n*n*n) ;

>    else if (!result) { /* łresult to to samo co result»*0 */ result ■ scanf("%*a");

>

> while (result!-EOF); return 0;

>

Zastanówmy się przez chwilę co się dzieje w programie. Najpierw wywoływana jest funkcja scanf() i następuje próba odczytu liczby typu int. Jeżeli funkcja zwróciła 1 to liczba została poprawnie odczytana i następuje wypisanie jej trzeciej potęgi. Jeżeli funkcja zwróciła 0 to na wejściu były jakieś dam*, które nie wyglądały jak liczl>a. W tej sytuacji wywołujemy funkcję scanf() z formatem odczytującym dowolny ciąg znaków nic będący białymi znakami z jednoczesnym określeniem, żeby nie zapisywała nigdzie wyniku. W ten sposób uk*poprawnic wpisana dana jest omijana. Pętla główna wykonuje się tak długo jak długo funkcja scanf() nie zwróci wartości EOF.

Więcej o funkcji scanf()

Funkcja gets

Funkcja gets służy do wczytania pojedynczej linii. Może Ci się to wydać <lziwuc, ale: funkcji tej nie należy używać pod żadnym pozorem. Przyjmuje ona jeden argument — adres pierwszego elementu tablicy. <k) którego należy zapisać odczytaną linię i nic poza tym. Z tego powodu nie ma żadnej możliwości przekazania do tej funkcji rozmiaru bufora podanego jako argument. Podobnie jak w przypadku scanf() może to doprowadzić do przepełnienia bufora, co może mieć tragiczne skutki. Zamiast tej funkcji należy używać funkcji fgcts().

Więcej o funkcji gets()

Funkcja fgcts

Funkcja fgets() jest bezpieczną wersją funkcji gets(), która dodatkowo może operować na dowolnych strumieniach wejściowych. Jej użycie jest następujące:

fgets(tablica_znakóv, rozmiar_tablicy_znakóv, stdin);

Na chwilę obecną nie musisz się przejmować ostatnim argumentem (jest to okreśk*-me strumienia, w naszym przypadku standardowe wejście standard input). Funkcja

3Jak rozróżniać te dwa zdarzenia dowiesz się w rozdziale Czytanie i pisanie do plików.



Wyszukiwarka

Podobne podstrony:
MG 54 Mamisz Rawskil/lBlok funkcjonalny X X, (Y) - wejścia (wyjścia) sygnałów reprezentujących dane
skanowanie0014 (71) i język musi im wszystkim sprostać. Ile typów sytuacji, ile typów zapotrzebowań,
Image298 Dane wejściowe */kadzie uzupełnień do 2 W! i Dane wejściowe w kodzie uzupełnień do 1 Dodaj
IMG?71 funkcjonariusze policji mieli możliwość zabezpieczenia drzwi od gabinetu czego jednak nie ucz
Funkcje wejścia getch() czyta znak scanw() czyta sformatowane wejście getstr() czyta napisy scanw()
SAMD63 EGZAMIN2009/2010 -Utermin ZESTAW B L Jakie nadciśnienie musi panować w zbiorniku hydroforowym
46 (26) 92 Rozbodowa systemu, pamięć PO, który pełni funkcję wejścia-wyjścia dwukierunkowej multiple
3.3. Dane wejściowe do procesu technologicznego Dane wejściowe obejmują dość obszerną dokumentację
ANALIZA FUNKCJONALNA ZALEWU ZEGRZYŃSKIEGO Jak pokazują dane, w latach 1995-2012 we wszystkich, poza
10007 IMG71 (6) S. Funkcja produkcji. EAcmcnty Veor\ ptoAvlVł^V YVVI. 2) wielkość zysku przesądza o

więcej podobnych podstron