使用文件访问标志和c++的文件输入和输出

File Input and Output using file access flags and c++

本文关键字:文件 输出 输入 c++ 标志 访问      更新时间:2023-10-16

假设我在记事本上创建了一个名为Numbers.txt的文档。我将数字6放在记事本上并结束。然后我键入以下代码段。

#include< iostream>
#include < fstream >
int main()    
{    
  fstream sample;
  sample.open("Numbers.txt", ios::in | ios :: out);
  if(sample)    
  {
     int number;
     sample >> number;
     sample << "555";
    sample.close();
   }
}

出于某种原因,有时它会打印出555,有时它只打印出6。没有一致性。换句话说,输出究竟是如何发送到文件的。有人能解释一下原因吗?

当您打开一个同时用于输入和输出的文件时,当您在读取和写入该文件之间切换时,必须执行seek。我会引用标准来显示在哪里,但你需要引用的引用集相当长(一直到C标准)。基本上,它说读写是像使用了C库中的函数一样完成的,而C标准说,在为两者打开的流上切换输入和输出时,需要进行查找。