gpt4 book ai didi

c++ - 使用 ubuntu 的 C++ 中 std::stoi 的问题

转载 作者:搜寻专家 更新时间:2023-10-30 23:59:40 24 4
gpt4 key购买 nike

当我尝试编译下面的简单程序时收到编译错误。

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;
}

我的目标是能够在用户为任何变量输入垃圾的情况下使用异常处理。

最佳答案

如果你看一下 documentation ,您会看到它是在 C++11 中引入的。您必须使用 -std=c++11 编译您的代码启用这些功能的选项,因为默认情况下代码未编译为 C++11。

Drew评论说如果你用的是C++03,你可以用

boost::lexical_cast<int>(buffer)

关于c++ - 使用 ubuntu 的 C++ 中 std::stoi 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15468233/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com