文件操作该怎么理解

本篇文章并没有介绍怎么进行文件操作,本篇文章主要是帮助理解文件操作,这是我个人的理解,希望大家能得到帮助

1.我们首先要了解流的概念

我们可以这样理解流,比如我们写scanf("%d", &a)这个代码时,当执行这个代码事,scanf函数会从键盘读取我们输入的值,然后赋值给a,这个读取值,然后再赋值的过程中就用到了流。在这里,scanf其实用的是stdin(标准输入流),然后我们在键盘输入。

2.文件操作时的流

当我们在进行文件操作时,我们用到的流可能不止stdin这样的标准输入流。

例如:如果我们想实现scanf ("%d", &a)这个函数的功能(给a赋个整型值),我们难道只能从键盘上读取数据吗?难道我们不能创建一个文件,然后我们先在文件中写入我们想要赋给a的值,然后我们对文件进行读取,把文件中的值赋给a?这种方法当然可以,这就是文件操作时的流的运用,,我们可以从上面两个例子中跟好的理解流。

3.区分fgetc和fputc以及fprintf和fscanf

当我们进行文件操作时我们要用到

1.我们打开文件的模式

2.对文件的操作函数

文件操作类的函数调用,都要包含头文件#include <stdio.h>,下面为了偷懒,我给省略了,但是代码要正确运行必须包含头文件#include <stdio.h>

这里我们来区别fgetc和fputc

fgetc:get意思是得到,然后他要从哪里得到呢?所以这时就要输入流,可以是stdin这样的标准输入流,还可以是FILE*fp这样的文件输入流。所以fgetc就是get点东西,然后可以从多种输入流get。fgets也可以这样理解。

fgetc运用

#include <stdio.h>
int main()
{
	int a = fgetc(stdin);
	printf("%c", a);
	return 0;
}

fputc:put的意思是放,那他要放哪呢,放在屏幕上?放在文件里面?都可以,只要fputc配合输出流使用就可以了。所以fputc就是put些东西,然后可以put在多种输出流上。fputs也可以这样理解。

fputc运用

int main()
{
	fputc('C', stdout);
	return 0;
}

区别fprintf和fscanf

fprintf:fprintf中的printf函数是答应东西到屏幕上,那fprintf就可以理解为打印东西到一个输出流上,可以是stdout标准输出流(屏幕),也可以打印到文件里,就相当于向文件内写内容。

int main()
{
	//打开文件
	FILE* fp = fopen("text.txt", "w");
	if (fp == NULL)
	{
		perror("fopen");
		return 1;
	}
	//写入
	fprintf(fp, "hello world!");
	//关闭文件
	fclose(fp);
	fp = NULL;
	return 0;
}

fscanf:fscanf中有scanf函数,scanf函数是从键盘接收内容,然后再进行其他的操作,那么fscanf函数就是从各种输入流中接收数据,然后再进行其他的操作。

例子:

int main()
{
	//打开文件
	FILE* fp = fopen("text.txt", "w+");
	if (fp == NULL)
	{
		perror("fopen");
		return 1;
	}
	//写入到文件
	fprintf(fp, "%d",  7);
	//将文件光标返回起始位置
	rewind(fp);
	//从文件中拿数据
	int a = 0;
	fscanf(fp, "%d", &a);
	printf("%d", a);
	//关闭文件
	fclose(fp);
	fp = NULL;
	return 0;
}

总结:

文件操作时,在对应的操作模式,对应函数的使用时,流参与很大的作用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值