<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
- <C/C++> FILE指针的使用
- C使用FILE指针文件操作
- C使用FILE指针文件操作
- C使用FILE指针文件操作
- C使用FILE指针文件操作
- C使用FILE指针文件操作
- C使用FILE指针文件操作
- C使用FILE指针文件操作
- C使用FILE指针文件操作
- C使用FILE指针文件操作
- C使用FILE指针文件操作
- 【C++】指针的使用
- 【C/C++】使用指针时的“陷阱”
- C/C++,指针的定义和使用
- C语言 FILE文件指针
- C语言 指针的使用
- C函数指针的使用
- c 双指针的使用
- redis系统学习-string命令
- Java集合框架总结(4)——List接口的使用
- Wget
- 从代码分析Android-Universal-Image-Loader的图片加载、显示流程
- 2015年大一下第12周项目2-形状类族的中的纯虚函数
- <C/C++> FILE指针的使用
- redis系统学习-hashes
- 我佩服——WPF
- WinForm DataGridView 鼠标右键
- centos6.5 安装gitlab
- Java集合框架总结(5)——Map接口的使用
- redis系统学习-set
- C语言操作MySql
- Public-DNS(公共DNS)介绍