文件操作
懒得写了,贴个网址出来留着以后看【C语言】《带你学C带你飞》(小甲鱼),顺便为小甲鱼良心视频打 call
包括:
- 文件是什么
- 打开和关闭文件
- 顺序读写文件
- 读写单个资格
- 读写单个字符
- 读写整个字符串
- 格式化读写文件
- 二进制读写文件
- 随机读写文件
fopen 函数文档
函数概要:
fopen 函数用于打开一个文件并返回文件指针
函数原型:
#include <stdio.h>
...
FILE *fopen(const char *path, const char *mode);
参数解析:
返回值:
-
如果文件打开成功,则返回一个指向 FILE 结构的文件指针
-
如果文件打开失败,则返回 NULL 并设置 errno 为指定的错误
备注:
-
path 参数可以是相对路径(…/fishc.txt)也可以是绝对路径(/home/FishC/fishc.txt),如果只给出文件名而不包含路径,则表示该文件在当前文件夹中
-
从本质上来说,文本文件也是属于二进制文件的,只不过它存放的是相应的字符编码值
-
打开方式要区分文本模式和二进制模式的原因,主要是因为换行符的问题。C 语言用 \n 表示换行符,Unix 系统用 \n,Windows 系统用 \r\n,Mac 系统则用 \r。如果在 Windows 系统上以文本模式打开一个文件,从文件读到的 \r\n 将会自动转换成 \n,而写入文件则将 \n 替换为 \r\n。但如果以二进制模式打开则不会做这样的转换。Unix 系统的换行符跟 C 语言是一致的,所以不管以文本模式打开还是二进制模式打开,结果都是一样的
演示:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE *fp;
int ch;
if ((fp = fopen("hello.txt", "r")) == NULL)
{
printf("打开文件失败!\n");
exit(EXIT_FAILURE);
}
while ((ch = getc(fp)) != EOF)
{
putchar(ch);
}
fclose(fp);
return 0;
}
fclose 函数文档
函数概要:
fclose 函数用于关闭先前由 fopen 函数打开的文件
fclose 函数会将缓冲区内的数据写入文件中,并释放系统所提供的文件资源
函数原型:
#include <stdio.h>
...
int fclose(FILE *fp);
参数解析:
返回值:
-
如果文件关闭成功,返回值是 0
-
如果文件关闭失败,返回值是 EOF,并设置 errno 为指定的错误
备注:
- 磁盘已满、设备出错或者 I/O 错误均可能导致 fclose 函数调用失败
标准流
标准流 包括:标准输入(stdin)、标准输出(stdout)、标准错误输出(stderr)
继续贴网址【C语言】《带你学C带你飞》(小甲鱼)
包括:
- 标准流
- 标准输入、标准输出、标准错误输出
- 重定向
- 错误处理
I/O缓冲区
标准I/O提供了三种类型的缓冲模式:按块缓冲、按行缓冲和不缓冲
继续贴网址【C语言】《带你学C带你飞》(小甲鱼)