Чем заменить функцию stoi?

327
14 октября 2017, 19:44

В программе нужно перевести строку в целое число. Я пытался использовать функцию 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.

Answer 1

Так

string str = "5678906576";
cout << atoi(str.c_str())<< endl;

можно. Но тут у вас проблема выхода за рамки int, тут вам нужно было

cout << atoll(str.c_str())<< endl;
Answer 2

Для использования 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

READ ALSO
считать файл с определенного места си

считать файл с определенного места си

можно ли начать читать файл с определенного места?например есть текст,обработал одно слово -закрыл файл,в другой функции открыл этот файл...

219
Конструктор копии для классов

Конструктор копии для классов

Пытаюсь присвоить значения вектора v1 k v2 но компилятор дает ошибкуГде ошибка? И ещё один вопрос, как перезагружать оператор присваивания...

227
Не подставляется переменная в jquery скрипт в window.open

Не подставляется переменная в jquery скрипт в window.open

Здравствуйте, имеется кусок следующей jquery функции:

217