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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.62
Eliador
12 / 12 / 2
Регистрация: 18.05.2011
Сообщений: 83
#1

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

04.08.2011, 08:57. Просмотров 1574. Ответов 4
Метки нет (Все метки)

Здравствуйте, пишу парсер для файла определенного формата (фактически лексический и синтаксический анализаторы), так вот среди данных имеются числовые значения, как целые так и с плавающей точкой. для преобразования этих чисел из строкового представления хочу собственно использовать функции 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++ Как заменить функции strset и atoi?
C++ X=atof(s.c_str()); - ошибка в Builder10
C++ atof округляет число
Функция atof() возвращает не точное значения C++
C++ функции atoi и itoa
использование функции atof C++
C++ Русский шрифт и функция atof()
Функции itoa и atoi: что это такое и с чем их едят? C++
C++ Преобразование char* в double (функции atof и strtod)
C++ Почему если во вторую и третью строку, вводить сперва символы а потом числа. То atoi, atof выводят "0"

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
diagon
Higher
 Аватар для diagon
1921 / 1187 / 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
12 / 12 / 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
Эксперт С++
 Аватар для odip
7151 / 3291 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
04.08.2011, 19:56     Функции atoi и atof #5
accept правильно все говорит
Yandex
Объявления
04.08.2011, 19:56     Функции atoi и atof
Ответ Создать тему
Опции темы

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