当我尝试编译下面的简单程序时收到编译错误。
error: ‘stoi’ was not declared in this scope
我试图将两者都包括在内#include <string>
,但#include <string.h>
我仍然遇到这些问题。我使用的是 Ubuntu,我不记得我是如何安装 g++ 的,但我确定它使用的是 apt-get install g++ 命令,所以我不知道我使用的是什么版本的 g++ 或 C++ 库。
#include <iostream>
#include <fstream>
#include <string.h>
using namespace std;
struct Data
{
string fname;
string lname;
int age;
};
int main()
{
bool toContinue = true;
Data data;
string buffer;
do
{
try
{
getline(cin,data.fname);
getline(cin,data.lname);
getline(cin,buffer);
data.age = stoi(buffer);
cout<<data.fname<<" ";
cout<<data.lname<<" ";
cout<<data.age<<endl;
}
catch(std::invalid_argument)
{
cerr<<"Unable to parse integer";
}
}while(toContinue);
return 0;
}
我的目标是能够在用户为任何变量输入垃圾的情况下使用异常处理。