5

k&rから読んでいるときに、次の例に出くわしました

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

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

4

1 に答える 1

5

ctrl+zEOFではありません。これは、端末にストリームを閉じるように指示する方法にすぎません。

ctrl+zWindowsシステムでは、行の最初の文字としてを記述する必要があります。そうでない場合、端末はそれを通常の文字と見なします。

于 2011-03-29T13:26:08.593 に答える