c ++文件流行为异常

这是代码:

fstream ioF; int i = 0; string line;
ioF.open("test.txt");
while(getline(ioF,line)) cout << ++i << ": " << line << endl;
cout << i << endl;
ioF.close();

ioF.open("test.txt");
i = 0;
while(getline(ioF,line))
    if(++i == 3){
        ioF << "*";
    }
ioF.close();

ioF.open("test.txt");
i = 0;
while(getline(ioF,line)) cout << ++i << ": " << line << endl;
cout << i << endl;
ioF.close();

我的文件开头包含以下内容:

  

第一行
  第二行
  第三行
  第四行
  第五行
  第六行

这些是在第二次执行开始时一次删除第4至6行的输出(每个块是一个执行):

  

1:第一行
  2:第二行
  3:第三行
  4:第四行
  5:第五行
  6:第六行
  6
  1:第一行
  2:第二行
  3:第三行
  4:四个人
  5:第五行
  6:第六行
  6


  

1:第一行
  2:第二行
  3:第三行
  4:第五行
  5:第六行
  5
  1:第一行
  2:第二行
  3:第三行
  4:五个五个
  5:第六行
  5


  

1:第一行
  2:第二行
  3:第三行
  4:第六行
  4
  1:第一行
  2:第二行
  3:第三行
  4:*六分
  4


  

1:第一行
  2:第二行
  3:第三行
  3
  1:第一行
  2:第二行
  3:第三行
  3

我不明白为什么光标会这样,为什么在最后一次执行时文件流不会将*打印到文件。有人可以解释吗?

非常感谢您!

zqscydqyzj 回答:c ++文件流行为异常

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3123122.html

大家都在问