编译器出错:
Unhandled exception at 0x7486A832 in Nowy.exe: Microsoft C++
exception: std::out_of_range at memory location 0x00B3F2F4.
在重新布局之后,这似乎是一个错误:
if (plik.good() == true)
{
int number_of_lines = 0;
string line;
while (std::getline(plik, line))
{
if (number_of_lines == deleteLineNumber)
{
line.replace(0,line.length(), ""); // <--------- HERE IS ERROR
//cout << "Line has been deleted!";
break;
}
++number_of_lines;
}
}
我在哪里弄错了? 这段代码应该从文件中删除一行
答案 0 :(得分:0)
std::out_of_range
是一个例外。在这种特殊情况下,您正在访问尚未分配的std::string
区域:
尝试将line[0]
替换为line.begin()
,将line.length()
替换为line.end()
:
line.replace(line.begin(),line.end(), "");
如果您想完全删除该行,请尝试:
line.erase(line.begin(), line.end());