Buforowanie , getchar, putchar. S.Prata pytania ?

0

Witam czytam książkę o C S.Prata i mam pytanie co do buforowania.

W pętli

 while((ch = getchar()) != 'Q')
	{
		putchar(ch);
	}

znaki wprowadzane są najpierw zapisywany w buforze i dopiero potem przechwytuje je pokoleii pętla i funkcja putchar.
Rozumiem że to działa że wszystko co wpisze do znaku nowej lini(włącznie) zapisuje się w buforze a następnie znak po znaku getchar odczytuje dane z buforaa putchar je wyświetla.

Ale na końcu rozdziału mam takie pytanie:
Jaki jest efekt funkcji putchar(getchar()) Sprawdziłem w kompilatorze i zostaje wyświetlany tylko pierwszy wpisany znak.
I moje pytanie jest takie dlaczego nie wyświetlają się wszystkie znaki umieszczone w buforze ?

0

Ty tak serio? Czytaj kod. Nie ucz się schematów. Pomślmy. Co robi pierwszy kod?? Zaczynasz od przypisania do zmiennej ch pobranego znaku. Ok. Potem sprawdzasz czy nie jest to Q. Nie jest więc putchar wypisuje podany znak.

Kod nr 2. putchar(getchar()) - Pobierz ZNAK, wypisz ZNAK. ZNAK <--- 1, nieistotne ile znaków wpisałeś. Jak bardzo chcesz wypisać wszystkie to gets, puts - końcówka S od string.

1 użytkowników online, w tym zalogowanych: 0, gości: 1