2011-03-29 1 views
5

durante la lettura da k & r mi sono imbattuto nel seguente esempioK & R, come getchar leggere EOF

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

dubbio 1: quando sto digitando il carattere Ctrl + Z (EOF sul mio SYS). o/p è ciao
ma quando sto digitando la stringa di caratteri come abcdef^Zghijk
o/p è abcdef -> (compresa la freccia) e in attesa che l'utente inserisca i/p invece di terminare il ciclo e stampare ciao ..

risposta

5

ctrl+z non è EOF, è solo un modo per dire al terminale di chiudere il flusso.

Sui sistemi Windows è necessario scrivere ctrl+z come primo carattere della linea, altrimenti il ​​terminale lo considera un carattere normale.

+0

grazie mille ... – Tarun

+0

Ma ho il dubbio che se è stato trattato come una variabile ordinaria, allora perché o/p si fermano dopo abcdef -> .. invece di abcdef^zjhijk – Tarun