文件操作(c)

1.文件分类:分为程序文件和数据文件

        1.程序文件:源程序文件(后缀.c),目标文件(windows环境后缀.obj),可执行程序(windows环境后缀.exe)

        2.数据文件:程序运行时读写的数据,分为文本文件和二进制文件

2.文件名:文件路径+文件名主干+文件后缀

3.二进制文件:数据在内存中以二进制形式存储,不加转换输出到外存文件中

4.文本文件:在存储前转换为ASC码形式,读不懂二进制

5.数据在文件中的存储:字符用ASC2形式,数值型数据使用ASC2形式或者二进制形式(可以将各位数字看成字符)

6.流:可以近似认为是一个字符河,负责程序与外部设备的对接,通常有输入流和输出流两种

7.标准流:在我们运行c语言的时候,系统会默认打开三个流,三个流的类型为FILE*,为文件指针:

         1.stdin:标准输入流,在大多数环境从键盘输入,scanf函数就是从输入流中读取数据的

         2.stdout:标准输出流,在大多数环境中输出到显示器界面,printf函数就是把信息输入到标准输出流中

        3.stderr:标准错误流,大多数环境中输出到显示器界面

8.文件指针:每个被使用的文件都开辟了一个文件信息区,用来存放相关的信息如文件名字,文件状态或者文件位置,这些信息保存在一个结构体变量中,系统将此结构体声明并取名为FILE,而维护时可以用文件指针找到文件信息区

9.打开和关闭文件:

FILE*fopen(const char*filename,const char*mode)//打开文件,mode为文件的打开方式
int fclose(FILE* stream)//关闭文件

文件打开方式:

文件操作(c)_第1张图片

报错函数perror("fopen")代表对函数fopen进行报错排查

10.文件读写方式:顺序读写和随机读写

文件操作(c)_第2张图片

其中二进制输出只针对文件,其余可以是文件可以是普通数据,而且可以由stdin,stdout代替

写文件:fputc函数(写入内容,文件指针);如果换行加入\n

读文件:fgetc函数(文件指针)

                fgets函数(读取内容的指针,最多读多少个字符,文件指针)

                fputs函数(输出内容的指针,输出内容的方式如stdout)

#include
int main()
{
	FILE* pa = fopen("data1.txt", "r");//打开文件
	if (pa ==NULL)
	{
		perror("fopen->data1.txt");
		return 1;
	}
	FILE* pb = fopen("data2.txt", "w");
	if (pb == NULL)
	{
		fclose(pa);
		pa = NULL;
		perror("fopen->data2.txt");
		return 1;
	}
	int ch = 0;				//数据的拷贝
	while (ch = fgetc(pa) != EOF)//文件的读写按行操作
	{
		fputc(ch, pb);
	}
	fclose(pa);
	fclose(pb);
	return 0;
}

格式化输出函数fprintf(文件指针,打印内容),相比普通的printf函数只是前面加了一个文件指针

格式化输入函数fscanf(文件指针,打印内容),相比普通的scanf函数只是前面加了一个文件指针,记得别忘了取地址符

二进制输出函数fwrite(被写的数据指针,每个元素的字节数,需要写的元素数,文件名)

二进制输入(从流中取出再输入到文件)函数fread(被读的数据指针,每个元素的字节数,需要读的元素数,文件名)

你可能感兴趣的:(c语言,c语言)