我正在尝试打印文件中每一行上指示的行,但在使用 std::stoi 时返回超出范围的异常。文本文件的每一行都有一个数字,从第一行的 10 到末尾的 0。这就是为什么我不明白为什么超出范围,因为它应该使用 int,所以 32 位。
这是我的代码:
if (myfile.is_open()){
while ( getline (myfile,line) ){
DirLine = myfile.tellg();
myfile.seekg(0,0);
i=0;
lines = line;
while (fl){
j = std::stoi(lines,nullptr,10);
if (j == i){
cout << lines <<" - "<<j << '\n';
myfile.seekg(0,DirLine);
fl = false;
}
getline(myfile,lines);
i++;
}
}
myfile.close();
}
else cout << "Unable to open file";
你能解释一下为什么会这样吗?
提前感谢您的帮助。