ファイルにdouble型で書き込んだファイルを読み出すのはどうすればいいですか。
double以外にlong,charが保存されています。
longとcharはfscanfでうまく取り出せるんですが、
EX)
fscanf(fp1,"%s",&C[i]);
doubleだけうまくいきません。
誰か教えてください。お願いします。
VC6のヘルプを見る限りでは
scanf系の書式文字列にはdouble対応無し。
"f"はprintf系ではdoubleなのにscanfでは
floatになっていますね。
なんでだろ?
> doubleだけうまくいきません。
scanf系のdouble型の書式指定は"%lf"です。
書き込んだフォーマットはテキスト?それともバイナリ?
バイナリなら fread(&d, sizeof(double), 1, f); で読み込みでしょう。
テキストなら fscanf(f, "%lf", &d); です。
# 小文字のLです。数字の1ではありません。
scanf 系で float を読むときは %f double を読むときは %lf となります。
printf 系に float 専用フォーマット文字はありません。
理由は簡単。可変個引数部分においては暗黙の型昇格が常になされるから。
同様の理由で printf には char や short 専用のフォーマット文字はありません。
%c も対応する引数は printf=int scanf=char になっていますね。
みなさんありがとうございます。
なんとかいけそうです。
勉強になりました。
ツイート | ![]() |