柏虎资源网

专注编程学习,Python、Java、C++ 教程、案例及资源

C语言入门:文件读写的4个步骤_c语言如何对文件进行读写


我们已经完成了一个学生成绩管理系统,有增加学生信息、打印全部学生信息、查找学生、修改信息、删除信息等功能。

但是有一个问题:如果我今天输入了50个学生的信息,结束程序后,我输入的信息全面没有保存,再次运行程序时要重新输入这些信息,太麻烦了。

怎么解决这个问题呢?我们用文件来保存输入的信息。

1 什么是文件

文件是保存在外存储器上的一组数据的有序集合。

文件的特点:

数据长久保存;

数据长度不定;

数据按顺序存取。

2 文件的两种数据形式:文本文件和二进制文件

文本文件中的内容是以ASCII码字符流形式保存,二进制文件是直接把内存数据以二进制形式保存。

例如,整数1234

文本文件保存:49 50 51 52 (4个字符)

二进制文件保存: 04D2 (1234的二进制数)

注:以上内容看不懂就略过,只要知道文件有两种形式就可以了。

我们这里只说文本文件的读写。

3 文本文件的读写四步骤

第1步:定义一个文件指针。

语法格式为:

FILE *文件指针变量名;

如:

FILE * fp ;

目的是通过文件指针fp指向文件缓冲区,通过移动指针实现对文件的操作。

第2步:打开文件。

打开文件语法格式为:

fopen("文件名","文件打开方式")

这里用到了系统函数fopen( )。

函数fopen() 的返回值:

如果执行成功,则返回包含文件缓冲区等信息的FILE型地址,赋给文件指针fp。

如果打开不成功,则返回一个NULL(空值)。

一般要使文件指针与相应文件实体对应起来,就是说,程序对文件指针进行操作。如:

fp = fopen("f.txt", "r") ;

这是指以读(r)的方式打开文件f.txt。

上述文件名前面没有指定文件夹,表示这个文件跟你的程序是在同一个文件夹里的。

如果写成:

fp = fopen("C:\\ABC\\f.txt", "r") ;

表示打开的是电脑C盘里文件夹ABC的文件f.txt,当前你需要在C盘要有这个文件夹ABC。

一般我们会把打开文件写在一个选择语句里,就是说打开不成功时,可以让程序结束。

if((fp = fopen("f.txt", "r")) == NULL)

{

printf("File open error!\n");

exit(0);

}

exit(0):关闭所有打开的文件,并终止程序的执行

参数0表示程序正常结束;非0参数通常表示不正常的程序结束

文件打开方式参数表:

当打开文件时,如果是读文件(以“读”的方式打开),指定的文件必须存在,否则出错;

当打开文件时,如果是写文件(以“写”的方式打开),则指定的文件可以存在,也可以不存在,此时:

以 "w" 方式写文件:

如果该文件已经存在,则原文件将被删去然后重新建立新文件;否则按指定的名字新建一个文件。

以 "a" 方式写文件:

如果该文件已经存在,则写入的数据将被添加到指定文件原有数据的后面,不会删去原来的内容;否则按指定的名字新建一个文件(与“w”相同)。

如果需要将文件同时读和写,那么使用 "r+"、"w+" 或 "a+" 打开文件。

第3步:打开文件以后,进行文件处理,如将文件里的数据读出来,或者将数据写入文件。

等会举例说明。

第4步:关闭文件

语法格式为:

fclose(文件指针名);

把缓冲区中的数据写入磁盘扇区,确保写文件的正常完成。

释放文件缓冲区单元和FILE结构体,使文件指针与具体文件脱钩。

所以函数fclose() 的返回值也有两个:

返回0:正常关闭文件;

返回非0:无法正常关闭文件。

如:

fclose(fp);

只有执行了关闭文件,才能保存数据。

一般我们也会把关闭文件语句写在一个选择语句里,就是说关闭不成功时,可以让程序结束。

如:

if( fclose(fp) )

{

printf( "程序出错,无法关闭文件!\n" );

exit(0);

}

4 总结

今天只讲了文件操作的4个步骤:

1:定义文件指针;

2:打开文件;

3:文件读写;

4:关闭文件(保存数据到文件)。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言