Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Число в строку и обратно.


Автор: Хоббит 4.1.2009, 18:00
Как правильно по стандарту c++ преобразовывать числа  в char* и обратно. Знаю есть, itoa, atoi и им подобные, но это еще сишные функции.
И как преобразовывать числа в std::string и обратно?

Автор: Dmi3ev 4.1.2009, 19:57
Цитата

Знаю есть, itoa, atoi и им подобные, но это еще сишные функции.

И чем они не устраивают??? Есть и другие
http://www.cplusplus.com/reference/clibrary/cstdlib/

Автор: cutwater 4.1.2009, 20:01
Собственно itoa в стандартную библиотеку Си не входит, в отличие от atoi, atol, atoll (добавлена в стандарте С99) поэтому использование itoa не есть корректно, если код не заточен под определенный компилятор.

По поводу языка С++ для преобразований std::string to int, etc. пока приходит в голову только использование std::stringstream, и проверку состояния потока на корректность преобразования.

Добавлено через 3 минуты и 36 секунд
ps. функция atoi не сообщает никоим образом об ошибке преобразования, поэтому ее использование небезопасно.
В качестве альтернативы есть функции 

long int strtol(const char *nptr, char **endptr, int base);
long long int strtoll(const char *nptr, char **endptr, int base);

или функции sprintf, sscanf

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)