Skip to content

Latest commit

 

History

History
114 lines (81 loc) · 2.97 KB

06.md

File metadata and controls

114 lines (81 loc) · 2.97 KB

文件I/O

当程序运行时,数据在内存中,但当它结束或计算机关闭时,数据就丢失了。为了永久保存数据,我们需要将其写入文件中。

文件用于存储数据。在本章中,将介绍如何从文件中读取数据并将数据写入文件。

fstream是另一个与iostream类似的c++标准库,用于对文件进行读写。

C语言中文件仅有一个数据类型FILE。 以下是来自fstream库中用于文件处理的数据类型:

数据类型 描述
ofstream 它用于创建文件和对文件进行写操作。
ifstream 它用于从文件中读取数据。
fstream 它拥有ofstream和ifstream两者的功能,这意味着它可以创建文件,写文件,并从文件中读取。

打开一个文件

通过文件变量打开文件时需要指明打开文件的目的。例如:写文件,读文件等等。这些是打开文件时需要指定的不同模式。(C语言里有统一的文件指针)

模式 描述
ios::app 打开文件并把文件指针指向末尾
ios::ate 打开一个文件,并将读/写文件指针移动到文件的末尾。
ios::in 打开文件赋予该文件类型变量读的权限
ios::out 打开文件赋予该文件类型变量写的权限
ios::trunc 如果文件存在,在打开文件之前截断内容。

这是打开一个文件的语法

#include <iostream>
#include <fstream>

using namespace std;

int main(){
  ofstream file;
  file.open ("example.txt");
  return 0;
}

上面的例子实现了打开文件。

同样可以打开文件进行读写。具体的例子如下:

#include <iostream>
#include <fstream>

using namespace std;

int main(){
  fstream file;
  file.open ("example.txt", ios::out | ios::in );
  return 0;
}

关闭文件

操作系统中的文件描述符是有限的,所以当你的文件操作结束时理应关闭文件描述符。 下面演示了怎么关闭。

#include <iostream>
#include <fstream>

using namespace std;

int main(){
  ofstream file;
  file.open ("example.txt");
  file.close();
  return 0;
}

对文件进行读写操作

#include <iostream>
#include <fstream>

using namespace std;

int main(){

  char text[200];

  fstream file;
  file.open ("example.txt", ios::out | ios::in );

  cout << "Write text to be written on file." << endl;
  cin.getline(text, sizeof(text));

  // 把text里面的字符写入到file指向的文件(example.txt)里
  file << text << endl;

  // 从file指向的文件里读数据存入到text字符串中
  file >> text;
  cout << text << endl;

  // 关闭file文件描述符
  file.close();
  return 0;
}

C语言中的文件操作

这里可以感受到C++对文件的操作设计有些不如C语言所以我加上了C语言有关的文件操作。

详情请看: