C语言基础之文件操作二

193 阅读3分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第十二天,点击查看活动详情

文件操作

前言

接上篇,这里我们学习文件操作~(注:学习笔记)

c语言对文件的处理方法

  • 缓冲文件系统:系统自动地在内存区为每一个的文件开辟一个缓冲区。用缓冲文件系统进行的输入输出又称为高级磁盘输入输出。
  • 非缓冲文件系统:系统不自动开辟确定大小的缓冲区,而由程序为每个文件设定缓冲区。用非缓冲文件系统进行的输入输出问称为低级输入输出系统。
  • 在UNIX系统下,用缓冲文件系统来处理文本文件;用非缓冲文件系统来处理二进制文件。
  • ANSI C标准只采用缓冲文件系统来处理文本文件和二进制文件。
  • C语言中对文件的读写都是用库函数来实现。

文件的打开与关闭

一、文件型指针变量:

FILE *fp;

fp是一个指向FILE类型结构体的指针变量。

我们使fp指向某一个文件的结构体变量,从而通过该结构体变量中的文件信息能够访问该文件。

如果有n个文件,一般应设n个指针变量,使他们分别指向n个文件,以实现对文件的访问。

FILE类型的数组:

FILE f[5];
//定义了一个结构体数组f,他有5个元素,可以用来存放5个文件的信息。

文件的打开(fopen函数)

  1. 函数调用:

    FILE *fp;
    fp = fopen(文件名,使用文件方式);
    

    注意:

    1. 需要打开的文件名,也就是准备访问的文件的名字
    2. 使用文件的方式(读|写|等)
    3. 让哪一个指针变量指向被打开的文件

image.png

对文件使用方式有以下几点说明:

  1. 凡用“r”打开一个文件时,该文件必须已经存在,且只能从该文件读出。若该文件不存在,则返回空指针NULL。
  2. 用“w”打开的文件只能向该文件写入。若打开的文件不存在,则以指定的文件名建立该文件,若打开的文件已经存在,则将该文件删去,重建一个新文件。
  3. 若要向一个已存在的文件追加新的信息,只能用“a”方式打开文件。但此时该文件必须是存在的,否则将会出错。
  4. 在打开一个文件时,如果出错,fopen将返回一个空指针值NULL。
  5. 在程序中可以用这一信息来判别是否完成打开文件的工作,并作相应的处理。
  6. 把一个文本文件读入内存时,要将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语言学习之小甲鱼视频链接