C学习_文件-1.15

发布时间:2024年01月17日

学习内容:

文件

你生成的数据需要存储起来,为以后所用。相比C,在matlab这种跑一次很长时间的保存生成的结果数据更为迫切。

1.文件分类

1)程序文件:.c,.obj,.exe…………
2)数据文件:相关数据。

2.文件名

文件路径+文件名+文件后缀:构成唯一识别码

3.文件内存及指针

文件类型相当于一个结构体类型。
每个文件在内存中有其相应的文件信息区,这个信息区保存在一个结构体变量(指针)中,由系统声明。
FILE* point_of_file;//指向文件信息区的起始地址。(和之前所学的类似)

4.使用文件四板斧

和开辟动态内存那里类似,四个步骤是需要一块使用的。
1)打开文件,选择你要执行的操作
2)判断是否可执行
3)关闭文件
4)文件指针置为空指针

FILE* point_of_file =fopen("txt.c","w");写txt。c文件
if (point_of_file==NULL{}

fclose(point_of_file);
point_of_file=NULL

相对路径和绝对路径

上述的txt.c,为默认目录下的相对路径。绝对路径是把路径写全了。

5.流

在C语言中,默认打开3个流,流相当于一个适配器的概念。
1)FILE* stdin;标准输入流,用于适配键盘,键盘。
2)FILE* stdout;标准输出流,用于适配屏幕,显示。
3)FILE* stderr;标注错误流,用于适配屏幕,报错。
(确实,没有这基础的三个流,使用者都没法操作,看不到,输入不了)

6.从文件读取,输出在文件上

顺序读写

写在输入输出流中的几个文本操作函数(以ASCII码值保留,字符必须用ASCII):
1)字符函数:fgetc(),fputc()。
2)文本一行一行操作函数:fgets(),fputs()。
3)格式化函数,即随心所欲改变数据类型:fscanf(),fprintf()。

以二进制形式的读写函数(对数值型数据,可ASCII码,也可以二进制码):
fwrite(),fread()。

可选择读写

可直接选择的位置有:当前位置;文件末尾;文件开始。除此之外:
1)跳到我想读取的位置(以偏移量计算):fseek()。
2)告诉我当前位置礼文件开始的偏移量:ftell()。
3)回到起始位置:rewind()。

到文件末尾了,结束判定

1)fgetc()在读取文件末尾时,返回‘EOF’。用EOF判断文件结束。
2)fgets()在文件结束时,返回’NULL‘。
3)fread()读取的数据数量<指定的数量时,表明结束。

文件读取失败了,找原因

feof()判断失败原因:
1)读取失败
2)读取到文件末尾了。

文章来源:https://blog.csdn.net/weixin_48278060/article/details/135593793
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。