我正在练习读取文件并编辑内容。输入如下:
2 2 3 -1
3 3 -1 3
我想使-1无效。它适用于第一行,所以我得到:
2 2 3
3 3 -1 3
但是如您所见,在其他行上它不会编辑。我的循环有什么问题?我是C ++的新手,所以感到困惑。另外,英语不是我的母语,所以很抱歉!
if (fin.is_open())
{
while ( getline (fin,line) )
{
for (int i; i<line.size(); i++){
if(line[i] == '-'){
line[i] = ' ';
line[i+1] = ' ';
}
}
cout << line << '\n';
}
fin.close();
}
答案 0 :(得分:2)
由于在i
循环中使用了未初始化的for
,因此您的代码具有未定义的行为。
将行更改为
for (int i = 0; i<line.size(); i++){
// ^^ Need that