• ベストアンサー

配列に好きな個数の整数を格納したい

配列に好きな個数の整数を格納したい 以下のようにプログラムを組んだのですが、 Ctrl+Zを入力してもEOFと判断されず繰り返しが終了しませんでした。 int vc[100] , no=0; puts("整数を入力してください。"); while(1){ scanf("%d",&vc[no]); if(vc[no]==EOF) break; no++; } 使わないような数9999等にするしかないのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.2

#-1か255(EOF=(char)0xFF)を入れたら終わりそうな予感。 入力値を%d、つまり数値として解釈しようとするはずなので、#1で言われるように戻り値をチェックしてエラー値なら%cで読み直し、EOFなら抜けるという処理が必要な気がします。

その他の回答 (2)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

scanf を使うなら返り値は必ずチェックしろ. 以上.

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.1

もしかすると、scanf()の戻り値をチェックするとよいかもしれません。

関連するQ&A