错误:无法在分配中将'std::string (aka std::basic_string<char>}'转换为'int'

Error: cannot convert 'std::string (aka std::basic_string<char>}' to 'int' in assignment

本文关键字:string std char lt gt int 转换 basic aka 分配 错误      更新时间:2023-10-16

我有一个问题-我想从标准输入行存储值到整型,但不确定如何转换为整型:

string line;
int value;
getline(cin,line);
istringstream ss(line);
while (ss>>line) {
    if (ss.eof()==false) {
        // stores non ints in strings
    }
    else {
        value=line; //ERROR
    }
}

我已经尝试过使用标准文档材料转换这个,但我无处可去。我做错了什么?

您可以使用std::stoi:

value=std::stoi(line);

你可以使用你的istringstream来尝试加载一个值到int同时检查ss.fail()

ss >> temp; // where temp is an int
if(ss.fail())
{
// handle the error because the value wasn't an int
}
else
{
// process your int
}

当然,这可以根据您的需要进行一些修改。