Я пытаюсь преобразовать treePtr->item.getInvest()
, который содержит строку целого числа. Это возможно?конвертировать строку указателя в целое число
ответ
#include <sstream>
// ...
string str(*(treePtr->item.getInvest())); // assuming getInvest() returns ptr
istringstream ss(str);
int the_number;
ss >> the_number;
Да, это сработало, спасибо –
Он работает, но он неэффективен - есть по крайней мере одно распределение кучи и свободное там, которое вполне может застрять в мьютексе, если ваша программа в многопоточном режиме. Вы делаете это один раз, или миллионы раз? –
wilhelmtell: Просто потому, что мы пишем C++, это не значит, что все должно быть классом. Преждевременная оптимизация может быть корнем всего зла, но умышленный выбор дополнительной работы является извращенным. –
Лучше использовать strtol()
, чем беспорядок вокруг с потоками.
const char* s = treePtr->item.getInvest();
const char* pos;
long the_number = ::strtol(s,&pos,10);
if(pos!=s)
// the_number is valid
strtol()
является лучшим выбором, поскольку он дает представление о том число, возвращаемое является действительным или нет. Кроме того, он избегает выделения на кучу, поэтому он будет работать лучше. Если вам просто нужен номер, и вы с радостью принимаете нуль вместо ошибки, просто используйте atol()
(это всего лишь тонкая обертка вокруг strtol
, которая возвращает нуль при ошибке).
«Лучше использовать strtol» ... почему? –
Потоки - это «путь на С ++». Я предпочитаю, чтобы он беспокоился о том, чтобы все детали, связанные с строками C, были правильными. – mch
Shmoopty: справедливый вопрос. Я добавил свои аргументы в ответ. –
если у вас есть доступ к Форсирование:
int number= boost::lexical_cast<int>(treePtr->item.getInvest());
- 1. Jinja конвертировать строку в целое число
- 2. конвертировать строку в целое число и вычислять
- 3. Лучший способ конвертировать строку в целое число
- 4. Целое число из указателя
- 5. Конвертировать положительное целое число в отрицательное целое
- 6. Конвертировать целое число в шестнадцатеричное
- 7. Конвертировать целое число в валюту
- 8. Конвертировать целое число в проценты
- 9. конвертировать широкоформатную строку с wscanf в целое число в C
- 10. Конвертировать целое число в шестнадцатеричную строку в Groovy
- 11. конвертировать шестнадцатеричную строку символов в целое число в java
- 12. конвертировать число в строку
- 13. Конвертировать целое число в строку сборки 8086 tasm
- 14. python конвертировать строку в целое число для умножения
- 15. Конвертировать целое число в двоичную строку, дополненную ведущими нулями
- 16. Как конвертировать целое число во времени в стандартную строку времени
- 17. конвертировать векторную строку с десятичным значением в целое число
- 18. PostgreSQL конвертировать строку с запятыми в целое число
- 19. D3JS или JQuery: конвертировать строку JSON в целое число
- 20. Как преобразовать строку в целое число типа
- 21. конвертировать дату в целое число в postgresql
- 22. Невозможно преобразовать строку в целое число
- 23. Несовместимое целое число с преобразованием указателя? что?
- 24. Как Python преобразует строку в целое число
- 25. положить целое число в строку
- 26. Поместите строку в целое число
- 27. Переключить целое число в строку
- 28. Включить целое число в строку
- 29. Conver строку в целое число
- 30. Преобразование целочисленного указателя в целое число
http://stackoverflow.com/questions/1243428/convert-string-to-int-with-bool-fail-in-c/1243444#1243444 – AraK