В программе нужно перевести строку в целое число. Я пытался использовать функцию stoi для этой цели, но она не принимается - выходит ошибка:
'stoi' was not declared in this scope
В частности, мне нужно перевести строку наподобие такой "5678906576" в целое число. Я пытался заменить ее на atoi, используя предварительно c_str. Пишу:
string str = "5678906576";
cout << atoi(str.c_str())<< endl;
Получаю в консоли 1383939280.
Тогда я пробую функцию fromStdString().toInt() из Qt Core. Пишу:
string str = "5678906576";
cout << QString::fromStdString(str).toInt() << endl;
Получаю 0.
Господа, объясните, пожалуйста, почему так и чем мне тогда заменить stoi.
Использую Qt 4.7.4 QtCreator-2.4.1.
Так
string str = "5678906576";
cout << atoi(str.c_str())<< endl;
можно. Но тут у вас проблема выхода за рамки int, тут вам нужно было
cout << atoll(str.c_str())<< endl;
Для использования stoi вам нужно подключить заголовочный файл
#include <string>
и использовать ее вот так
#include <string>
int main()
{
std::string str1 = "45";
std::string str2 = "3.14159";
int myint1 = std::stoi(str1);
int myint2 = std::stoi(str2);
}
сама функция и использование описаны в std::stoi, std::stol, std::stoll
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости