文件操作
1.打开和关闭文件
打开和关闭文件如下面代码所示:
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
FILE *fp;
char ch;
if((fp = fopen("test.txt","r")) == NULL)
{
printf("failure\n");
exit(1);
}
while(ch != EOF)
{
putchar(ch);
}
fclose(fp);
return 0;
}
要注意的地方:
- 注意fopen函数的第二个参数r、w、a等的意义。
- EOF是一个宏定义,表示文件的结束位置。
- 注意打开一个文件的标准操作是:
if((fp = fopen("test.txt","r")) == NULL)
{
printf("failure\n");
exit(1);
}
- 注意最后一定一定要关闭文件!如果不关闭文件,写入的内容是还在缓冲区内的,并不能真正写入到文件中,所以如果写了文件,之后又要读取的话,必须先关闭文件,再重新打开。
2.文件的读写
- 简单读写:
主要只要弄懂fgets,fputs,fgetc,fputc,feof 等函数的用法,用的时候查询一下即可,只说几个值得注意的地方。第一个是fgets无论设置读取的字符串长度是多少,遇到换行符或者EOF都会停止读取。第二个是在读写字符串时,要用feof来判断文件指针是不是已经指向了文件末尾,而不能简单使用ch == EOF
来判断。 - 使用fprintf、fscanf来进行格式化读写
需要注意的是,这里fprintf才是向文件里写内容,fscanf才是从文件中读内容,与我一开始的直觉相反。 - fread和fwrite
这两个函数是使用二进制的形式,整块地想文件中写入或者从文件中读取内容。