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だと思います。
[この投稿を含むスレッドを表示] [この投稿を削除]