2011-03-29 13 views
5

podczas odczytu k & r natknąłem poniższym przykładzieK & R, jak getchar czytać EOF

#include<stdio.h> 
int main() 
{ 
int c; 
while((c=getchar())!=EOF) 
{ 
    putchar(c); 
} 
printf("hello"); 
} 

wątpliwości 1: kiedy piszę ctrl znak + z (EOF w moim sys). o/p to cześć
, ale kiedy piszę ciąg znaków takich jak abcdef^Zghijk
o/p jest abcdef -> (w tym strzałka) i czeka na użytkownika, aby wprowadzić i/p zamiast zakończenia pętli i wydrukować cześć ..

Odpowiedz

5

ctrl+z to nie EOF, to tylko sposób na poinformowanie terminalu o zamknięciu strumienia.

W systemach Windows należy wpisać ctrl+z jako pierwszy znak linii, w przeciwnym razie terminal uzna to za zwykłą postać.

+0

dziękuję bardzo ... – Tarun

+0

Ale mam wątpliwości, że jeśli potraktowano go jak zwykłą zmienną, to dlaczego o/p zatrzymuje się po abcdef -> .. zamiast abcdef^zjhijk – Tarun