• ベストアンサー

fscanfの使い方。

while(fscanf(fpi,"%[^ ]",s[i]) != EOF){//スペース毎にファイルを配列に読み込む。 while文内に入り込めないんで多分間違ってます。 sはchar型で宣言しています。 fpiは読み込み形式です。 何が間違っているかわかりません。 よろしくおねがいします。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

EOF判定はfeofを使ったらどうでしょうか あと、%[…]は、%sと同じだから >sはchar型で宣言しています。 だったらおかしいんじゃないかな

newcolleger
質問者

お礼

いつもお世話になってます。 feof今週習いました。 使ってみます。 ありがとうございました。

その他の回答 (2)

  • ihsak
  • ベストアンサー率0% (0/1)
回答No.3

最適な回答ではないですが気がしますが、下記の修正で可能だと思います。 while(fscanf(fpi,"%[^ ]",&s[i]) != EOF) もしくは while(fscanf(fpi,"%[^ ]",s) != EOF) ですね。 sはポインタではないのですよね?

newcolleger
質問者

お礼

1からやり直そうと思います。 ありがとうございました。

  • xcrOSgS2wY
  • ベストアンサー率50% (1006/1985)
回答No.1

fscanfの返値は確認しましたか? 確認した場合、その返値になる理由は何か、分かりましたか?

newcolleger
質問者

お礼

確認しました。 もう一度0からやってみることにしました。 ありがとうございました。

関連するQ&A