Я хочу получить int из строки, не используя тип int напрямую, чтобы получить преимущества от getline(), но каким-то образом я получаю сообщение об ошибке, если вход не является фактическим int ,ошибка при попытке получить int из строки
#include <iostream>
#include <string>
using namespace std;
int main (int argc, char** argv)
{
string word = {0};
cout << "Enter the number 5 : ";
getline(cin, word);
int i_word = stoi(word);
cout << "Your answer : " << i_word << endl;
return 0;
}
Когда пользовательский ввод 5 (или любой другой целое) выход:
Enter the number 5 : 5
Your answer : 5
Когда пользовательский ввод либо ENTER или любую другую букву, слово, и т.д ...:
Enter the number 5 : e
terminate called after throwing an instance of 'std::invalid_argument'
what(): stoi
Abandon (core dumped)
Re ad up при обработке исключений – RvdK