| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Число в строку и обратно. |
| Автор: Хоббит 4.1.2009, 18:00 |
| Как правильно по стандарту c++ преобразовывать числа в char* и обратно. Знаю есть, itoa, atoi и им подобные, но это еще сишные функции. И как преобразовывать числа в std::string и обратно? |
| Автор: Dmi3ev 4.1.2009, 19:57 | ||
И чем они не устраивают??? Есть и другие 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 |