相比于C语言的文件操作,C++ 更好的对文件操作进行了封装和简化。在 C++ 中开始使用 fstream 头文件里面的类对文件进行操作。

fstream 中的操作文件的三大类:

  • 1.ofstream : 写操作
  • 2.ifstream : 读操作
  • 3.fstream : 读写操作

操作文件类型分为两种:

  • 1.文本文件
  • 2.二进制文件

写文件操作

1.包含头文件

#include <fstream>

2.创建流对象

ofstream ofs;

3.打开文件

ofs.open("文件路径、文件名",打开方式);

4.写数据

ofs << "写入的数据";

5.关闭文件

ofs.close();

文件打开方式

打开方式解释
ios::in为读文件而打开文件
ios::out为写文件而打开文件
ios::ate初始位置:文件尾
ios::app追加方式写文件
ios::trunc如果文件存在会替换覆盖
ios::binary二进制操作方式

打开方式可以配合使用,利用 | 操作符
例如:用二进制方式写文件 ios::binary|ios::out
同时,需要注意:每次读写文件后一定要用 close() 进行关闭文件。

读文件操作的四种方法

1行1行字符读(char)

ifstream ifs;
ifs.open("文件.txt",ios::in);
char buf[1024]={0};
while (ifs.getline(buf,1024))
{
    cout << buf;
}
ifs.close();

1个1个字符读(char)

ifstream ifs;
ifs.open("文件.txt",ios::in);
char c;
while ((c = ifs.get())!=EOF)
{
   cout << c;
}
ifs.close();

1行1行字符读(string)

ifstream ifs;
ifs.open("文件.txt",ios::in);
string buf;
while (getline(ifs,buf))
{
    cout << buf;
}
ifs.close();

1个1个字符读(右移位)

ifstream ifs;
ifs.open("文件.txt",ios::in);
char buf[1024]={0};
while (ifs >> buf)
{
    cout << buf;
}
ifs.close();
文章目录