<C/C++> FILE指针的使用

来源:互联网 发布:淘宝发空包怎么操作 编辑:程序博客网 时间:2024/06/06 00:50

FILE 文件指针

 fopen_s/_wfopen_s: 打开文件

fclose: 关闭文件

fread: 读取

fwrite: 写入

打开:

errno_t fopen_s(    FILE** pFile,   const char *filename,   const char *mode );

pFile: FILE指针的地址

filename: 文件路径

mode: 打开模式

"r" : 打开一个存在的文件, 如果不存在,则返回失败

"w":  打开一个文件, 如果不存在则创建, 存在则清空内容

"a":  打开一个文件并将文件指针指向文件末尾, 文件不存在将创建文件

"r+": 打开一个文件用于读/写, 文件必须存在.

"w+": 打开一个文件用于写/读,文件不存在则创建

"a+": 打开一个文件用于读/追加, 文 件不存在则创建.

"b": 以二进制读/写文件, 如"rb", 'wb"


返回值:

0: 成功,否则就失败

读取:

size_t fread(    void *buffer,   size_t size,   size_t count,   FILE *stream );
buffer: 缓冲区指针

size: 缓冲区单位大小,单位为字节

count: 最大读取个数

stream: 文件指针

实际最大读取的字节数为:size * count个

返回值:

实际读取的个数,可能会比count小,使用feof测试是否已经到达了文件末尾,发生错误, 返回0/EINVAL


写入:

size_t fwrite(   const void *buffer,   size_t size,   size_t count,   FILE *stream );

buffer: 缓冲区地址

size: 缓冲区单位大小,单位为字节

count: 最大写入个数

stream: 文件指针

返回值:

实际写入的个数,如果比count小, 可能buffer数组越界, 发生错误, 返回0/EINVAL


测试代码:

void TestFile(){FILE *pFile;fopen_s(&pFile, "test.txt", "wb");if (NULL == pFile){cout << "创建/打开文件失败!" << endl;return;} char buffer[10] = "string";int nByteWriten = fwrite(buffer, 1, strlen(buffer), pFile);cout << "成功写入" << nByteWriten << "个字节" << endl;fclose(pFile);char rdBuffer[10] = {0};fopen_s(&pFile, "test.txt", "rb");if (NULL == pFile){cout << "打开文件失败!" << endl;return;}int nByteRead = fread(rdBuffer, 1, 10, pFile);cout << "成功读取" << nByteRead << "个字节: ";cout << rdBuffer << endl;fclose(pFile);}

运行结果:



0 0
原创粉丝点击