我正在运行时遇到此错误 -
terminate called after throwing an instance of 'std::out_of_range' what(): basic_string::substr
正如本文(http://www.cplusplus.com/reference/string/string/getline/)中所建议的,要读取c ++中的一行,我们使用std::getline (std::cin,name);
我的代码是:
int t;
cin>>t;
while(t--)
{
string s;
int num;
getline(std::cin,s);
string q= s.substr(0,3);
num =stoi(s.substr(4));
}
当我只运行时:
string s;
int num;
getline(std::cin,s);
string q= s.substr(0,3);
num =stoi(s.substr(4));
有效。我想我必须冲洗我的cin缓冲区。对于这类案件,最佳做法应该是什么?提前致谢