文件操作
1.文件的打开和关闭
文件在读写之前应该先打开文件,在使用结束之后应该关闭文件。
在编写程序的时候,在打开文件的同时,都会返回一个FILE*的指针变量指向该文件,也相当于建立了指针和文件的关系。
ANSI C规定使用fopen函数来打开文件,
成功打开文件后, fopen 将返回一个指向 FILE 类型指针,此指针用于后续的文件操作2。如果打开失败, fopen 将返回 NULL ,并且错误代码会保存在 errno 中。
fclose 来关闭文件。
参数 stream 是指向 FILE 类型指针,指的是要关闭的文件。如果关闭成功, fclose 返回0,否则返回EOF(-1)。
//打开文件
FILE* fopen(const char* filename, const char* mode);
//关闭文件
int fclose(FILE * stream);
const char* filename表示文件名
const char* mode表示文件打开的模式
有如下几种方式
比如我要打开道德经这个文件只读,就可以像下面这样写
int main(void)
{
char ch = 0;
FILE* pf = fopen("道德经全文.txt", "r");
if (pf == NULL)
{
perror("fopen");
return 1;
}
fclose(pf);
return 0;
}
我们接下来就可以看文件的读写了。
2.文件的顺序读写
我们拿其中fgetc为例
fgetc函数简介 :
fgetc是C语言中的一个文件操作函数,用于从指定的文件中读取一个字符。该函数的声明如下:
int fgetc(FILE *stream);
其中,参数 stream 是一个指向文件指针的指针。
使用方法 :
包含头文件 :在程序中需要包含 stdio.h 头文件。
打开文件 :使用 fopen 函数打开文件,获得文件指针。例如:FILE *fp;
fp = fopen("filename.txt", "r");
r模式表示只读读取字符 :调用 fgetc 函数读取文件中的字符2。例如:int ch = fgetc(fp);这将读取filename.txt文件中的一个字符,并将其存储在整数变量ch中。
关闭文件 (可选):如果不再需要文件指针,可以使用 fclose 函数关闭文件。例如:fclose(fp);返回值 :
如果成功读取字符, fgetc 函数返回读取到的字符的ASCII值。
如果到达文件末尾或读取出错,返回 EOF (-1)。
EOF的全称是end of file
那么思考一下,既然fgetc和fputc可以作用于所有的流
那么是不是也可以作用于标准输入流和标准输出流
答案显然是可以的
int main(void)
{
int ch = fgetc(stdin);//从键盘(标准输入流)上读取
fputc(ch, stdout);//将字符输出(写)到屏幕(标准输出流)
return 0;
}
作用和scanf和printf是差不多的。
其实通过文件的知识我们可以去尝试去做一共破损版的的电子书模拟器了
电子书模拟器(破损版一稿)-CSDN博客