C语言入门基础_文件

c语言把所有设备文件(硬盘、打印机、键盘、屏幕...)都作为相同的逻辑文件对待。

文件的一般操作步骤:
1、打开文件 
2、操作文件 :读操作、写操作、追加操作、定位操作
3、关闭文件

认识四个函数:

文件打开函数 fopen()

关闭文件函数fclose()

文件写函数 fputc() :把一个字符写到指定函数中
文件读函数 fgetc() :从指定文件读取一个字符

一、文件打开函数 fopen()

1、 fopen()使用方式:

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

例如:fp=("example.txt","r");

2、检查文件打开的正确性

使用fopen()打开文件时,通常要检查文件打开的正确性,以便程序是否继续执行,
正常打开时,fopen()函数返回文件指针;否则返回"NULL"值,即一个空指针。

下面是一个检查文件打开的正确性的代码示例:

int main()
{
	FILE* fp;
	if((fp = fopen("example.txt", "r")) == NULL)
	{
		printf("cannot open file\n");
		exit(0);	//exit()函数的作用是终止程序执行,并关闭所有打开的文件。
	}
    return 0;
}

二、关闭文件函数fclose()

fclose()使用方式: fclose(文件指针);

该函数功能为关闭“文件指针”所指向的文件,释放打开文件时的结构体变量。成功返回0,否则返回EOF。(EOF是头文件stdio.h中的符号常量,值为-1。)

三、文件写函数 fputc()

1、使用方式:        fputc(写入的字符,文件指针变量);

2、实例:把键盘输入的一个字符串写入到磁盘文件example.txt中

int main()
{
	char ch;
	FILE* fp;

	fp=fopen("C:\\Users\\Desktop\\example.txt", "w");

	while ((ch=getchar()) != '\n')
	{
		fputc(ch, fp);
	}
	fclose(fp);
	return 0;
}

运行结果:

 四、文件读函数 fgetc()

1、使用方式:        ch = fgetc(fp);

说明:fp是文件型指针变量,ch是字符变量,正常情况fgetc()的返回值是从文件中读出的一个字符

如果是文本文件,遇到结束标志时,fgetc()函数返回值是EOF

2、实例:使用fgetc()函数输出example.txt文件中的内容

int main()
{
	char ch;
	FILE* fp;
	fp = fopen("C:\\Users\\Desktop\\example.txt", "r");
	while ((ch = fgetc(fp)) != EOF)
		putchar(ch);
	fclose(fp);
	return 0;
}

运行结果:

扩展知识:

feof()函数:判断读取的文件是否读完(适用于文本文件和二进制文件) 

未遇到结束标志时,feof()函数返回值为0;否则feof()函数返回值为1

1、使用格式:        feof(fp);    

其中fp是文件指针

2、实例:使用feof()函数对文件进行读取控制,输出example.txt文件中的内容

int main()
{
	FILE* fp;

	if ((fp = fopen("C:\\Users\\Desktop\\example.txt", "r")) == NULL)
	{
		printf("cannot open file.\n");
		exit(0);
	}
	while (!feof(fp))
	{
		putchar(fgetc(fp));
	}
	fclose(fp);
	return 0;
}

运行结果:

附:文件使用方式

r         只读打开文本文件 - 文件必须存在
w         只写打开文本文件 - 文件不存在则自动创建,文件存在则清空
a         向文本文件末端追加数据 - 文件必须存在
 
rb         只读方式打开二进制文件
wb         只写打开二进制文件
ab         向二进制文件末端追加数据

r+         以 读/写 打开一个文本文件 - 文件必须存在
w+         以 读/写 建立一个新的文本文件 - 先写数据,然后读数据
a+         以 读/写/追加 打开一个文本文件

rb+    wb+     ab+

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值