Форум программистов, компьютерный форум CyberForum.ru

Функции atoi и atof - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.62
Eliador
11 / 11 / 2
Регистрация: 18.05.2011
Сообщений: 83
04.08.2011, 08:57     Функции atoi и atof #1
Здравствуйте, пишу парсер для файла определенного формата (фактически лексический и синтаксический анализаторы), так вот среди данных имеются числовые значения, как целые так и с плавающей точкой. для преобразования этих чисел из строкового представления хочу собственно использовать функции atoi и atof, но еще есть желание сохранить платформо-независимость, т.е. сделать этот парсер кросс-платформенным.

Так вот, являются ли эти две функции (atoi и atof) платформо-независимыми?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.08.2011, 08:57     Функции atoi и atof
Посмотрите здесь:

C++ Atoi, atof.
C++ atof и atoi
C++ atof округляет число
C++ функции atoi и itoa
использование функции atof C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
04.08.2011, 09:56     Функции atoi и atof #2
Могу ошибаться, но являются. Только для си проще sscanf использовать.
Но для плюсов лучше boost::lexical_cast, быстрее работает.
C++
1
2
3
4
5
6
7
#include <iostream>
#include <boost/lexical_cast.hpp>
int main(){
    std::string buf("123");
    int x = boost::lexical_cast<int> (buf);
    std::cout << x;
}
Eliador
11 / 11 / 2
Регистрация: 18.05.2011
Сообщений: 83
04.08.2011, 10:24  [ТС]     Функции atoi и atof #3
Спасибо. Раз так буду использовать то что вы предложили, хотя в принципе скорость для меня не так критична, но раз можно увеличить производительность, без каких либо других потерь, используя предложенные вами функции, то конечно буду юзать их.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
04.08.2011, 10:44     Функции atoi и atof #4
Цитата Сообщение от Eliador
Так вот, являются ли эти две функции (atoi и atof) платформо-независимыми?
они стандартные
при переполнении они не обязаны сообщать об ошибке
если нужно учитывать переполнение, используй strtod() и strtol()
odip
Эксперт C++
 Аватар для odip
7225 / 3287 / 58
Регистрация: 17.06.2009
Сообщений: 14,165
04.08.2011, 19:56     Функции atoi и atof #5
accept правильно все говорит
Yandex
Объявления
04.08.2011, 19:56     Функции atoi и atof
Ответ Создать тему
Опции темы

Текущее время: 04:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru