Страница 1 из 1
Преобразование типов (char to float) C/C++
Добавлено: 11 мар 2008, 10:06
Speccyfan
Здравствуйте!
Необходимо строку сконвертить в float, как это можно сделать на gcc ?
Везде натыкаюсь на функцию atof(), но это для борландовского Си, а мне же под пингвином надо. Обратное преобразование можно сделать при помощи sprintf, а вот для char to float никак нигде не найду примера.
Хелп плиз!
Добавлено: 11 мар 2008, 10:58
grub
Не спец по С... но не спасет ли тебя функция read или что-то вроде этого (смысл -- считать строку в переменную нужного тебе типа)?
В фортране (g95) такая хрень точно работает.
Добавлено: 11 мар 2008, 11:13
Speccyfan
Что-то я такого не найду ...
Добавлено: 11 мар 2008, 11:26
Victor Gr.
Speccyfan,
atof() определена в stdlib.h и есть в стандарте ANSI C.
Код: Выделить всё
#include <stdio>
#include <stdlib>
int main(void) {
char * str = "3.1498";
float a = 0;
printf ("%s\n", str);
a = atof(str);
printf ("%f\n", a);
return 0;
}
Добавлено: 11 мар 2008, 12:00
Speccyfan
Спасибо! Что-то я затупил, мне казалось, что нету тут stdlib

Добавлено: 11 мар 2008, 15:32
exe
Добавлено: 20 мар 2008, 12:26
red f0x
...или банальный int scanf (const char* format, ...) с %lf в формате?
Re: Преобразование типов (char to float) C/C++
Добавлено: 06 апр 2008, 15:01
olecom
Speccyfan писал(а):Здравствуйте!
Необходимо строку сконвертить в float, как это можно сделать на gcc ?
Везде натыкаюсь на функцию atof(), но это для борландовского Си, а мне же под пингвином надо. Обратное преобразование можно сделать при помощи sprintf, а вот для char to float никак нигде не найду примера.
Хелп плиз!
Например в дебяне есть пакет
http://packages.debian.org/manpages-dev . Поставив его и набрав
можно найти достаточно информации про эту конкретную функцию. В случае наличия интернета и отсуствия man системы, можно воспользоватся сервисом
http://kerneltrap.org/search/node/atof
Прошу обратить внимание, что atof()
не детектирует ошибки (кривой ввод) и возвращает
double.