- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:fscanf ファイルから数を読み込む。)
ファイルから数を読み込む方法と指定範囲内の数を表示する方法
このQ&Aのポイント
- この質問では、C言語のプログラムでファイルから数を読み込む方法と、指定範囲内の数を表示する方法についての指摘をお願いしています。
- ファイルには2から6までの数が書かれており、プログラムではこれらの数を読み込んで表示することが目的です。
- 現在のプログラムでは、ファイルから読み込んだ数の条件チェックが不足しており、指定範囲外の数も表示されてしまっています。正しい範囲内の数のみが表示されるよう改善が必要です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
if((fp=fopen("sample.txt","a"))==NULL){ で、アーカイブモードでの追記書き込みとして sample.txt を開いた後、キーボード入力した値を sample.txt に書き込んでいるだけで、ファイル内での位置はどんどん先に進んでいるまま、 i=0; while(i<3){ の前では、sample.txt を "r" (読み出しモード) で開き直していないとともに、ファイル内での位置はキーボード入力の内容を書き込んだ後の「まだ存在しない部分」を指しているままで、 ファイルの先頭から読み書きし直すためには、fseek() 関数で fp を「先頭」に戻すパラメータを指定するか、rewind() 関数で fp を先頭に巻き戻すことが必要です。 一番簡単なのは、sample.txt を書き出し終わったら、一旦 fclose() してしまい、sample.txt を読みだすために fopen() し直すほうがスッキリします。
その他の回答 (1)
- maiko0318
- ベストアンサー率21% (1483/6969)
回答No.1
私の環境ではうまく動きますが? win10 Pro(Insider Preview),vs2013です。
質問者
お礼
お返事ありがとうございます。
お礼
ファイル内での位置の、説明ありがとうございます。