38952

38952



72


ROZDZIAŁ JO. PODSTAWOWE PROCEDURY WEJŚCIA I WYJŚCIA

czyta tekst aż do napotkania znaku przejścia do nowej linii, który także zapisuje w wynikowej tablicy (funkcja gets() tego nie robi). Jeżeli brakuje miejsca w tablicy to funkcja przerywa czytanie, w ten sposób, aby sprawdzić czy została wczytana cała linia czy tylko jej część należy sprawdzić czy ostatnim znakiem nie jest znak przejścia do nowej linii. Jeżeli nastąpi! jakiś błąd lub na wejściu nie ma już danych funkcja zwraca wartość NULL.

Zinclude <stdio.h>

int main(void) {

char buffer[128], uhole.line ■ 1, *ch;

while (fgets(buffer, sizeof buffer, stdin)) { /* 1 */ if (uhole.line) {    /* 2 */

putchar('>'); if (buffer[0]•-’>’) { putcharO »);

>

>

fputs(buffer, stdout);    /* 3 */

for (ch ■ buffer; *ch kk •ch!*,\n'; ++ch);    /* 4 */

uhole.line - *ch — ’\n’;

>

if (Iwhole.line) { putchar(’\nł);

>

return 0;

Powyższy kod wczytuje dtuie ze standardowego wejścia linia po linii i dodaje na początku każdej linii znak większości, po którym dodaje spację jeżeli pierwszym znakiem im linii nic jest znak większości. W linijce 1 następuje odczytywanie linii. Jeżeli nie ma już więcej danych lub nastąpił błąd wejścia funkcja zwraca wartość NULL, która ma logiczną wartość 0 i wówczas pętla kończy działank*. W przeciwnym wypadku funkcja zwraca po prostu pierwszy argmnent. który ma wartość logiczną 1. W linijce 2 sprawdzamy, czy poprzednie wywołanie funkcji wczytało całą linię, czy tylko jej część jeżeli całą to teraz jesteśmy na początku linii i należy dodać znak większości. W linii 3 najzwyczajniej w świecie wypisujemy linię. W linii 1 przeszukujemy tablicę znak po znaku, aż do momentu, gdy znajdziemy znak o kodzie 0 kończącym ciąg znaków albo znak przejścia do nowej linii. Ten drugi przypadek oznacza, że funkcja fgcts() wczytała całą linię.

Więcej o funkcji fgets()

Funkcja getchar()

Jest to bardzo prosta funkcja, wczytująca 1 znak z klawiatury. W wielu przypadkach dane mogą być buforowane pra*z co wysyłam? są do programu dopiero, gdy bufor zostaje przepełniony lub na wejściu jest znak przejścia do nowej linii. Z tego powodu po wpisaniu danego znaku należy nacisnąć klawisz enter. aczkolwiek trzeba pamiętać, że w następnym wywołaniu zostanie zwrócony znak przejścia do nowej linii. Gdy nastąpił błąd lub nie ma już więcej danych funkcja zwraca wartość EOF (która ma



Wyszukiwarka

Podobne podstrony:
66 ROZDZIAŁ JO. PODSTAWOWE PROCEDURY WEJŚCIA I WYJŚCIAFunkcje wyjścia Funkcja printf W przykładzie
68 ROZDZIAŁ JO. PODSTAWOWE PROCEDURY WEJŚCIA I WYJŚCIA W swoim działaniu funkcja ta jest w zasadzie
70 ROZDZIAŁ JO. PODSTAWOWE PROCEDURY WEJŚCIA I WYJŚCIA rozumiesz    j>ojęcia takie
Rozdział 10Podstawowe procedury wejścia i wyjściaWejście/wyjście Komputer byłby całkowicie
Image163 Parametry statyczne i dynamiczne Podstawowe charakterystyki wejściowe i wyjściowe pamięci p
BIOS (akronim ang. Basic Input/Output System - podstawowy system wejścia-wyjścia) - zapisany w pamię
7 DRUKOWANIE W tym rozdziale opisano podstawową procedurę drukowania i sposób wybrania ustawień ster
DRUKOWANIE W tym rozdziale opisano podstawową procedurę drukowania i sposób wybrania ustawień sterow
rozdział 3 (7) 80_Podstawy marketingu dowania jest uporządkowanie preferencji co do wyboru między ok
Untitled 42 7.2. Opis wejściowo - wyjściowy Opis układu jest sformułowany w postaci funkcji przejści
p1020846 Moduł wejściowo - wyjściowy 9€ Interfejs do CPU i pamięci głównej 8€ Interfejs do jednego l
33314 skanuj0258 (3) Rozdział 9. ♦ Podstawy MySQL 271 3.    Aby nadać przywilej usage
p1020846 Moduł wejściowo - wyjściowy 9€ Interfejs do CPU i pamięci głównej 8€ Interfejs do jednego l
p1020847 Ogólny model modułu wejścia-wyjścia Magistrala systemowa Połączenia do

więcej podobnych podstron