2012-06-26 2 views
-1

Я пытаюсь получить двойные значения из файла с помощью функции fscanf. Я бегу следующий код: это выдержка из моего кода:Ошибки в fscanf/scanf implemintation: неправильная реализация получения двойных значений?

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

напр. Содержание файла «10,5»

в режиме отладки, я вижу, что было считанное значение == 10,0000

Что это: плохая реализация функции fscanf, или моя ошибка? Если второй вариант - пожалуйста, совет, как его исправить? Kindely 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); 
+2

Выполняет ли это '% some_double' даже компиляцию? – Naveen

+0

Предположительно, фактический код имеет '& some_double'? – hmjd

+0

да, извините, когда я написал сообщение, я набрал неправильный символ, в коде идет «&» –

ответ

3

Проверьте, если ваш символ локали для десятичного делителя точки ' ' а не запятая','. Эта проблема действительна на некоторых платформах (например, Ubuntu gcc, в то время как в Windows mingw это не имеет значения).

+0

ДА !!!! Оно работает!!! Юрий, спасибо вам большое! Вы сэкономили много времени! SPASIBO !!! –

 Смежные вопросы

  • Нет связанных вопросов^_^