C++ 之 文件及输入输出操作

文件操作

顺序文件 : 一个有限字符构成的顺序字符流
cpp标准库中:ifstream,ofstream和fstream共3个类用于文件操作一统称为文件流类,类继承树如下。
在这里插入图片描述

使用/创建文件的基本流程:

graph LR; a(打开文件)-->b(读/写文件) b-->c(关闭文件)
  1. 打开文件
    1. 通过指定文件名,建立文件和文件流对象的关联;
    2. 指明文件的使用方式
  2. 读写文件 :利用读/写指钍进行相应位置的操作
  3. 关闭文件

建立顺序文件

程序实现 :

#include <fstream>//包含头文件
ofstream outFile("clients.dat",ios:out|ios::binary); //打开文件

ofstream(fout; fout. open("test. out", ios:: outlios: binary);

打开并建立文件的选项

  • ios::out 输出到文件,删除原有内容
  • ios:app 输出到文件,保留原有内容,总是在尾部添加
  • ios:binary 以二进制文件格式打开文件

文件读写指针

程序实现 :

ofstream fout("a1.out",ios::app);
long location=fout.tellp();//取得写指针的位置
location=10L;fout.seekp(location);//将写指针移动到第10个字节处
fout.seekp(location,ios:beg);//从头数location
fout.seekp(location,ios:cur);//从当前位置数location
fout.seekp(location,ios::end);//从尾部数location

输入输出

输入流对象:

  • cin与标准输入设备相连

输出流对象:

  1. cout与标准输出设备相连 可以重定向(到文件)
  2. cerr与标准错误输出设备相连 不可以重定向 无缓冲区直接输出
  3. clog与标准错误输出设备相连 不可以重定向 有缓冲区

输入输出重定向

freopen("test.txt","w",stdout);//将标准输出重定向到test.txt文件
freopen("t.txt","r",stdin);//cin被改为从t.txt中读取数据

istream类的成员函数

bool eof();//判断输入流是否结束
int peek();//返由下一个字符,但不从流中去掉
istream & putback(charc);//将字符ch放回输入流
istream & ignore(int nCount=1,int delim=EOF);//从流中删掉最多nCount个字符,遇到EOF时结束.
posted @ 2021-04-28 22:07  FlameAlpha  阅读(346)  评论(0编辑  收藏  举报