LINUX.ORG.RU

Проблема преобразования типов


0

0

Заранее прошу прощения за ламерский вопрос. "C" знаю плохо, а копаться в мануалах времени нет - завтра программу надо здать.

Нужно считать данные из файла (числа), провести с ними кое-какие преобразования и полученные данные вывести в файл. Чтобы провести численные преобразования необходими перевести массив символов (числа) во float.

/////
char a[10];
float b;
fscanf (f1, "%s", a);
b=atof(a);
/////

При выводе b все значения после запятой обнуляются (т.е. выводится только целая часть).
Вопрос: Как корректно преобразовать данные из char во float?

Вводить разделитель своей локали?

mv ★★★★★
()

>При выводе b

а где же здесь вывод?
'%g'

dimon555 ★★★★★
()
  char a[10];
+ char *p;
  float b;
  fscanf (f1, "%s", a);
+ if ((p = strchr(a, ',')) != NULL)
+     *p = '.';
  b=atof(a);

плюсами обозначены строки, которые необходимо добавить.

arsi ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.