• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ファイルの入出力)

ファイルの入出力でデータ読み込みがうまくいかない

このQ&Aのポイント
  • ファイルの入出力において、カンマ区切りのデータをfscanfで読み込み、別のテキストに同じ数値を出力したいが、うまく出力できない。
  • データは0.000000,0.000000,+NANのように出力されてしまう。
  • プログラムには間違いがあると思われるが、具体的な間違い点がわからない。指摘していただきたい。

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

  • ベストアンサー
回答No.1

fscanfで%fの代わりに%lfを使うと… http://www.k-cube.co.jp/wakaba/server/func/fscanf.html >このことに加え、可変長引数の標準変換が事をややこしくしている。 fprintf() の %f と %lf は double に、 &Lf は long double に対応しているのだが、 scanf() の %f は float へのポインタに、 %lf は double へのポインタに、 %Lf は long double へのポインタに対応しているのである あたりは俺にはよく解らん(笑)

kokosu7
質問者

お礼

できました有難うございます。 %fであっていると思い込んでいました。

その他の回答 (2)

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

本題への回答は既出のとおりです。 e1, e2, e3 という中間的な変数は必要なさそうです。 直接m[][]に放り込めばいいのではないでしょうか。

回答No.2

e1,e2,e3がdouble型なので、 書式は%lfになります。   fscanf(fp,"%f,%f,%f",&e1,&e2,&e3) → fscanf(fp,"%lf,%lf,%lf\n",&e1,&e2,&e3) または、 書式が%fなので e1,e2,e3はfloat型になります。

関連するQ&A