第二次学习c语言文件相关的知识,希望经过这次重学能将知识理解得更加的透彻。
一.什么是文件
经过良好组织的数据集叫文件。
二.使用文件来存储数据的优点
- 保存在文件中的数据可持久化存在。
- 可以对文件中的内容进行修改。
- 数据保存在文件中后可以被共享。
- 文件可存储海量的数据信息。
三.打开文件
打开文件使用函数——fopen("file name","open mode"); file name 表示文件名(file.txe或如:d:\\bin\\file.txt),open mode 表示具体的
读写意图。各种常见的文件打开模式:
w | 写入数据到文件中,如果文件原有数据那么清空后写入当前数据。 |
r | 从文件中读取数据。 |
a | 追加数据到文件(从文件末尾)。 |
w+ | 打开可读写文件。 |
r+ | 打开可读写文件,该文件必须存在。 |
a+ | 向文件追加并读取数据。 |
fopen()函数会返回一个指针,该指针指向文件的的开始——文件指针。
申明文件指针并打开一个文件:
FILE *fp;//申明一个文件指针
fp=fopen("file.txt","w");//打开文件file.txt.并且写文件。
文件指针:
代表一个指向文件开始的指针,使用它我们可打开和关闭一个文件,还可以利用它将数据读写的位置移动到任意一个字节位置。
文件非正常打开:
此时文件指针将会返回NULL,因此在编程时通常这样做来判断文件是否正常打开:
if(fp==UNLL){
printf("文件打开异常");
return ;
}
四:关闭文件
文件打开但是最后没有关闭文件,那么文件中的数据就有可能会损坏或者被删除。于是我们在编程时必须在文件使用完毕后关闭文件:
fclose(fp);//关闭文件
五.从文件读写数据
1.单个字节的读写
- putc(c,fp);该函数用于将单个字符写入文件
- getc(fp);该函数用于从文件以单个字符的形式读出。
在写问件操作输入数据时,使用ctrl+Z来结束输入。在读取数据时使用宏EOF来标识文件末尾,当EOF=-1时不能读入数据。
#include<stdio.h>
int main() {
FILE *fp;
fp=fopen("myfile.txt","w");
char c;
while((c=getchar())!=EOF){
putc(c,fp);
}
fclose(fp);
return 0;
}
2.字符串读写
- fputs():使用该函数将输入的数据写入到文件中。
gets(string);//从键盘获取数据 strcat(string,'\n');在其后追加换行符 fputs(string,fp);写入文件
- fgets():使用该函数从文件中读取数据。
fgets()函数的原型是:fgets(string,length,fp);length表示将要读取的数据长度,当读取到文件末尾时该函数读取的
数据为NULL,因此我们可以此来判断文件是否读取到末尾。
while((fgets(string,20,fp))!=NULL)用于循环读取文件中的数据直到文件末尾结束。