文件的读写主要是两种,一种是 FILE, 另一种是 stream。
其中 FILE 的头文件为 <stdio.h>.
而 stream 的头文件为 <fstream>
一、FILE
FILE *fp; //初始化
fopen_s(&fp, filename, "r"); //打开文件
fseek(fp, offset, SEEK_SET); //fseek可以对 fp 进行偏移调整,其中SEEK_SET表示从文件的首位置开始
fread(buff, size, count, fp); //将fp当前位置size*count个字节的数据读取到buff中
二、stream
ifstream in(filename, ios::in, ios::binary); //以二进制的形式读取文件
in.read((char*)& buff, sizeof(char)*4); //读取4个字节的数据存储到 buff 中
in.is_open(); //判断文件是否打开成功
有 ifstream 自然就有对应的 ofstream, 而 out.write() 的格式也是 in.read() 一样,也可以以二进制写入。
stream 在读取完了数据之后,指针会自动移动到后面,但是貌似用 fread 则不会。
注意在读取二进制文件的时候,必须要用参数 "rb", 否则读取会出错。
档offset过大,需要long long 型的offset时,fseek 改用 _fseeki64。