3

テキストファイルから double を読み取りたい 例: 31 39.9316476397222 116.113516352222

私は両方を試しましたが、うまくいきませんでした。39.93164 などの最初の 10 進数字しか読み取れませんが、39.9316476397222 は読み取れません。ありがとう!

int NodeID;
double _lat,_long;
fscanf (pFile, "%d %lf %lf", &NodeID,&_lat,&_long);
printf ("I have read: %d %f %f\n", NodeID,_lat,_long);

fscanf (pFile, "%d %lf %lf", &NodeID,&_lat,&_long);
printf ("I have read: %d %lf %lf\n", NodeID,_lat,_long);
4

2 に答える 2

20

fscanf man pageによると、次のよう%lfに doubleを使用する必要があります。

f、e、g (浮動小数点数) : オプションで小数点を含み、オプションで符号 (+ または -) が先行し、オプションで e または E 文字と 10 進整数 (または一部のstrtod でサポートされているその他のシーケンス)。C99 に準拠する実装は、0x または 0X が先行する場合、16 進浮動小数点形式もサポートします。
ここに画像の説明を入力

于 2015-02-17T16:28:42.823 に答える