-1

fscanf 関数を使用してファイルから double 値を取得しようとしています。私は次のコードを実行しています: これは私のコードから抽出したものです:

double some_double;
fscanf(file_name,"%lf", &some_double);

例のために。ファイルの内容は「10.5」

デバッグモードでは、読み取られた値 == 10.0000 であることがわかります

それは何ですか: fscanf 関数の実装が悪いのか、それとも私のミスですか? 2 番目のバリアントの場合 - 修正方法を教えてください。よろしくthnx

編集

#define nameOfFile "infoOnObjects.txt"
#define stop _asm nop
FILE* file = fopen(nameOfFile, "r");
if (file == NULL)
    throw "error";
double num;
int n = fscanf(file,"%lf", &num);
4

1 に答える 1

3

10 進数の除数のロケール記号がポイント「.」であり、コンマ「,」ではないかどうかを確認してください。この問題は一部のプラットフォームで有効です (Ubuntu gcc など。Windows mingw では問題ありません)。

于 2012-06-26T11:47:40.233 に答える