K.Maebashi's BBS 削除ページ

以下の投稿を削除します。

[2366] Re:ポインタ完全制覇 LIST 4-4 realloc.c
返信
投稿者:(ぱ)こと管理人
2024/03/03 23:56:35

>>①で、入力を終えるには、Windowsなら、数値をいくつか入力後、 >>Ctrl+Z を押してからENTERを押してください。 > >このような一時停止、再開操作をするプログラムを初めて知りました。 >while(...,stdin)で、たしかに終わりどころは・・・・と思ってもいました。 ちょっと不安を感じるのですが、このプログラムで「一時停止、再開動作」を しているのは、fgets()のところで入力待ちの時に一時停止、入力してENTERを 押したら再開、というところです。しかしこれはgetchar()だろうが scanf()だろうがfgets()だろうがキーボードで入力待ちになったら発生することです。 while (fgets(buf, 256, stdin) != NULL) { … というループが終了するのは、見ての通りfgets()がNULLを返した時です。 fgets()がNULLを返すのは、ファイルの終わりが来た時で、標準入力 (デフォルトではキーボード)で、ファイルの終わり(EOF: End Of File)を 示す手段が、WindowsではCtrl+Z、ENTERだということです。 Macは私は持ってませんが、ターミナルでEOFを示す方法は、(UNIXと同じく) Ctrl+Dだと思います。
パスワード:

管理者削除