2011-03-29 17 views
5

を読むGETCHARどのように私は、次の例K&R、K & rからの読み込み中にEOF

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

疑い1に出くわした:私は(私のSYS上EOF)文字Ctrl + Zを入力していたとき。 o/pはhello
ですが、abcdef^Zghijk
o/pはabcdef - >(矢印を含む)のような文字列を入力していて、ユーザーがループを終了する代わりにi/pを入力するのを待っています。 ..

答えて

5

ctrl+zはEOFではなく、端末にストリームを閉じるよう指示するだけの方法です。

Windowsシステムでは、行の最初の文字としてctrl+zを書き込む必要があります。そうでない場合、端末は通常の文字とみなします。

+0

ありがとうございました... – Tarun

+0

しかし、通常の変数のように扱われた場合は、なぜabcdefの代わりにabcdef - > ..の後にo/pが停止するのか疑問があります。^ zjhijk – Tarun

関連する問題