今回で2度目の投稿となるのですが、どうしても
わからなかったところがあるので質問させていただきます。
以下のようなテキストファイルからデータを読み込んでいき、
ファイルの終わり(EOF)がくるまでループさせるということを
やっています。
テキストファイルの中身
25 2 3
4 5 6
7 8
[EOF]
ソースファイルの一部
while (!feof(fp)) {
fscanf(fp,"%d",&value);
printf("%d\n",value);
}
25
2
3
4
5
6
7
8
という結果が出てほしいのですが、実際は
最後の8が2回表示されてしまいます。
[EOF]の位置が下の場合にはちゃんと表示されるのですが、
今回のような場合にでもしっかりと表示されるような方法はありますか?
25 2 3
4 5 6
7 8[EOF]テキストファイルからの読み込みについて
-
いむ
テキストファイルからの読み込みについて
-
いむ
Re:テキストファイルからの読み込みについて
>たかぎさん
お早い返信ありがとうございます。
以下のようにしてみたところ、自分の望むような
結果が表示されたのですがこれでいいのでしょうか?
while (!feof(fp)) {
if ((fscanf(fp,"%d",&value))==-1) break;
printf("%d\n",value);
}-
いむ
Re:テキストファイルからの読み込みについて
>たかぎさん
fscanfはデータの読み取りに成功した個数を
返すので、戻り値が1より小さいという式を用いたということで
いいでしょうか?
fscanfはデータの読み取りに成功した個数を
返すので、戻り値が1より小さいという式を用いたということで
いいでしょうか?