ファイルの各行に示されている行を印刷しようとしていますが、std::stoi の使用中に範囲外の例外を返します。テキスト ファイルには、最初の行の 10 から最後の 0 までの各行に 1 つの数字があります。それが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";
なぜこれが起こっているのか説明していただけますか?
助けてくれてありがとう。