- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ファイルの入出力)
ファイルの入出力でデータ読み込みがうまくいかない
このQ&Aのポイント
- ファイルの入出力において、カンマ区切りのデータをfscanfで読み込み、別のテキストに同じ数値を出力したいが、うまく出力できない。
- データは0.000000,0.000000,+NANのように出力されてしまう。
- プログラムには間違いがあると思われるが、具体的な間違い点がわからない。指摘していただきたい。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
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 へのポインタに対応しているのである あたりは俺にはよく解らん(笑)
その他の回答 (2)
- asuncion
- ベストアンサー率33% (2127/6289)
回答No.3
本題への回答は既出のとおりです。 e1, e2, e3 という中間的な変数は必要なさそうです。 直接m[][]に放り込めばいいのではないでしょうか。
- cyacya2000
- ベストアンサー率54% (39/71)
回答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型になります。
お礼
できました有難うございます。 %fであっていると思い込んでいました。