K.Maebashi's BBS 投稿フォーム
ハンドル名
件名
Link
>返信が遅くなりまして、すみません。 >昨夜,投稿に気づきました。 >指摘して頂きありがとうございます。 >違った解釈をしていました。 > > >【 指摘前(c言語 サイト参照) 】 >[Ctrl]+[z]... Mac >↓ >“ [1] + Stopped ./a.out ” ... 停止(Macターミナル表示) > >[fg] 又は [fg 1] と入力。 ... 再開 >↓ >(例)(Macターミナル表示) >variable_array[0]..12 >variable_array[1]..2 >variable_array[2]..1 > : > : >をしていまし。 > >>ちょっと不安を感じるのですが、このプログラムで「一時停止、再開動作」を >>しているのは、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だと思います。 > >【 指摘後 】 >[ Ctrl ] + [ D ]でした。 > >EOFを入力する手段とは知りませんでした。 >(もしかした今まで学習サイトで目にしているのに、忘れているのかもしれません) > >質問の仕方が初めから「どうしたらwhile(...(stdin)...!=NULL)ナルを返せますか?(Mac使用)」と、 >私が聞ければよかったです。お手間取らせました。 >不安を感じて指摘して頂きありがとうございました。 > >
spamよけのため、ここに「ほげぴよ」と入力してください。
削除パスワード :
クリック!