C++文件读写

1、 定义数据流对象指针

对文件进行读写操作首先必须要定义一个数据流对象指针,数据流对象指针有三种类型,它们分别是:

  • Ifstream:表示读取文件流,使用的时候必须包含头文件“ifstream”;
  • Ofstream:表示文件写入流,使用的时候必须包含头文件“ofstream”;
  • Fstream:表示文件读取/写入流,使用的时候必须包含头文件“fstream”;

2. 打开文件

使用open函数打开一个文件

void open(const char * filename, ios_base::openmode mode = ios_base::in | ios_base::out);
void open(const wchar_t *_Filename, ios_base::openmode mode = ios_base::in | ios_base::out, int prot = ios_base::_Openprot);
打开文件的模式
[ios::in] [ 为输入(读)而打开文件 ]
[ios::out [为输出(写)而打开文件 ]
[ios::ate] [初始位置:文件尾]
[ios::app] [所有输出附加在文件末尾]
[ios::binary] [二进制方式]
[ios::trunc] [如果文件已存在则先删除该文件]

3. 文件的读写操作

与C++的iostream读入与读出一样,只需要使用流操作符<<与>>就可以实现读出与读入
根据文件的读写状态,共有四个函数可供我们查看当前的读写状态

函数 作用
bad() 如果在读写的过程中出错,返回true
fail() 与bad()差不多,除了在出现错误的时候,在读写的过程中出现格式错误,例如你要读取一个整数却读取了一个字母,返回true
eof() 如果读到了文件末尾,返回true
good() ```这个是最通用的,以上三个函数返回false的话,这个函数返回true
判断读到文件末尾举例
ifstream in;
in.open("1.txt",ios::in);
int a;
while(in>>a){
  if(in.eof())
    break;
  cout<

4. 随机文件读写

tellg() 获取当前get指针的位置
tellp() 获取当前put指针的位置
两者返回的都是int值
skeeg(int position) 设置get指针的位置
skeep(int position) 设置put指针的位置

这两种写法是相对于文件开始的绝对位置偏移量

另外还有两种写法
skeeg(int offect, * direction)
skeep(int offect, * direction)

direction是一个具体的指针位置,他们是下图的三种类型

指针 位置
ios::beg 文件开始位置
ios::cur 文件当前位置
ios::end 文件末尾位置

5. 关闭文件

调用close()就可关闭文件

你可能感兴趣的:(C++文件读写)