你生成的数据需要存储起来,为以后所用。相比C,在matlab这种跑一次很长时间的保存生成的结果数据更为迫切。
1)程序文件:.c,.obj,.exe…………
2)数据文件:相关数据。
文件路径+文件名+文件后缀:构成唯一识别码
文件类型相当于一个结构体类型。
每个文件在内存中有其相应的文件信息区,这个信息区保存在一个结构体变量(指针)中,由系统声明。
FILE* point_of_file;//指向文件信息区的起始地址。(和之前所学的类似)
和开辟动态内存那里类似,四个步骤是需要一块使用的。
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,为默认目录下的相对路径。绝对路径是把路径写全了。
在C语言中,默认打开3个流,流相当于一个适配器的概念。
1)FILE* stdin;标准输入流,用于适配键盘,键盘。
2)FILE* stdout;标准输出流,用于适配屏幕,显示。
3)FILE* stderr;标注错误流,用于适配屏幕,报错。
(确实,没有这基础的三个流,使用者都没法操作,看不到,输入不了)
写在输入输出流中的几个文本操作函数(以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)读取到文件末尾了。