• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:この間質問した内容です。)

コンパイルエラーが発生しました。クイズのファイルを読み込む方法を教えてください。

このQ&Aのポイント
  • 以下のコードを実行したところ、クイズのファイルを読み込むことができませんでした。
  • 問題ファイルやスコアファイルのパスなどが正しく指定されているか確認してください。
  • ファイルの読み込みに失敗した場合は、エラーメッセージが表示されるので、それを参考に修正してください。

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

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

> この間質問した内容です その質問へのリンクを付けるとかした方が、前の内容を確認できるのでよいです。 あと、続きの質問するなら、前のは閉じましょう。 以前の質問に > 問題のテキストは、「1,問題文 1.○○ 2,○○ 3.○○」とし、頭に解答を書いています とありますが、このプログラムでは、最初に > fscanf(fp,"%d",&kNO); と、問題数らしきものを読んでいます。これは仕様変更があったのでしょうか。 もしそうだとして、その次からフォーマット通りだったとして > fscanf(fp,"%s",temp); > fscanf(fp,"%d",&ans[i]); とすると、char *の tempには、「空白以外の文字列」である「1,問題文 1.○○ 2,○○」が入るはずです。 (3.の直前がスペースになっているので。問題文の途中に(半角)空白があればその直前まで、無ければ、行の最後まで読みこまれます) ans[i]には、その直後の「数字文字列」を整数と解釈して読み込まれるので、この例では「3.○○」の「3」が入ります。 次の「問題」を読みに行こうとすると、続きの「3.○○」の「.」から開始するのでtempには「.○○」が入ります。 ・fscanfの %s は「空白以外の文字列」です。問題の途中に空白があるとその直前までしか読み込みません。 さらに、次に実行されたfscanfは前回の続きから読み込みます。行頭ではありません。 ・ %dも数字の文字列しか読みこみません。 正しく正解の位置から読み込んでいたとしても、次はカンマから読み込みが始まります。 ・書式を変えて読めるようにしたとしても、「正解,問題文」と並んでいるのに、問題文の方から読みだそうとしています。 順番が違います。 fscanfのフォーマット文字列のところをよくよく読みなおしてください。

その他の回答 (2)

回答No.3

kstr[i] って、何スか?どこ指すっスか? 以上、C言語をそれなりに使ってる者より。

回答No.2

> クイズのファイルを読み込む事ができません。  読み込むことが出来ないとは? (0)read_kuizu()を呼ぶ前にシステムエラーでこける (1)read_kuizu()を呼んだらシステムエラーでこける (2)read_kuizu()の結果が常にエラー  a) fopenでエラー  b) callocでエラー(kstr)  c) callocでエラー(ans)  d) mallocでエラー (3)read_kuizu()の結果は正常だけど、データが読まれていない。 (4)read_kuizu()の結果は正常でデータは読まれてるけど、期待した内容ではない。  あからさまなコーディングミスというものはちょっと見つかりませんので、どういう状況を指して読めないと言ってるのかわからないと対策の考えようがありません。  あと、どういうデータを読もうとしてるかにもよるので、それがわからないとどうしようもありません。ソースを見る限りでは前回の質問に書かれていた質問データの構造とは違うと思われますので。

関連するQ&A