一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第十二天,点击查看活动详情。
文件操作
前言
接上篇,这里我们学习文件操作~(注:学习笔记)
c语言对文件的处理方法
- 缓冲文件系统:系统自动地在内存区为每一个的文件开辟一个缓冲区。用缓冲文件系统进行的输入输出又称为高级磁盘输入输出。
- 非缓冲文件系统:系统不自动开辟确定大小的缓冲区,而由程序为每个文件设定缓冲区。用非缓冲文件系统进行的输入输出问称为低级输入输出系统。
- 在UNIX系统下,用缓冲文件系统来处理文本文件;用非缓冲文件系统来处理二进制文件。
- ANSI C标准只采用缓冲文件系统来处理文本文件和二进制文件。
- C语言中对文件的读写都是用库函数来实现。
文件的打开与关闭
一、文件型指针变量:
FILE *fp;
fp是一个指向FILE类型结构体的指针变量。
我们使fp指向某一个文件的结构体变量,从而通过该结构体变量中的文件信息能够访问该文件。
如果有n个文件,一般应设n个指针变量,使他们分别指向n个文件,以实现对文件的访问。
FILE类型的数组:
FILE f[5];
//定义了一个结构体数组f,他有5个元素,可以用来存放5个文件的信息。
文件的打开(fopen函数)
-
函数调用:
FILE *fp; fp = fopen(文件名,使用文件方式);注意:
- 需要打开的文件名,也就是准备访问的文件的名字
- 使用文件的方式(读|写|等)
- 让哪一个指针变量指向被打开的文件
对文件使用方式有以下几点说明:
- 凡用“r”打开一个文件时,该文件必须已经存在,且只能从该文件读出。若该文件不存在,则返回空指针NULL。
- 用“w”打开的文件只能向该文件写入。若打开的文件不存在,则以指定的文件名建立该文件,若打开的文件已经存在,则将该文件删去,重建一个新文件。
- 若要向一个已存在的文件追加新的信息,只能用“a”方式打开文件。但此时该文件必须是存在的,否则将会出错。
- 在打开一个文件时,如果出错,fopen将返回一个空指针值NULL。
- 在程序中可以用这一信息来判别是否完成打开文件的工作,并作相应的处理。
- 把一个文本文件读入内存时,要将ASCII码转换成二进制码,而把文件以文本方式写入磁盘时,也要把二进制码转换成ASCII码,因此文本文件的读写要花费较多的转换时间。对二进制文件的读写不存在这种转换。
#include<stdio.h>
int main(){
FILE *fp;
char *AppendStr = "Text";
fp = fopen("E:\\China.txt","a");
if(!fp){
printf("Can not open E:\\China.txt!\n");
} else{
printf("Open success!\n");
fputs(AppendStr,fp);
}
fclose(fp);//最后别忘记,关闭打开的文件!
return 0;
}
//Open success!
//且文件被创建,并追加Text文字
声明
本篇是跟着b站上的小甲鱼视频学习时候做的笔记,方便以后复习,希望每天都能进步一点点!!!
链接附上:C语言学习之小甲鱼视频链接