scanf,fscanf,ssanf与printf,fprintf,sprintf的区别

本文介绍了C语言中的流概念,重点讲解了标准输入流stdin、标准输出流stdout和标准错误流stderr的应用。此外,还详细阐述了scanf,printf,fscanf,fprintf这些用于数据输入输出的函数,以及它们在文件操作中的应用,如fwrite用于输出到文件,fscanf用于格式化输入。

前言

流:程序的数据输出到各种外部设备,也需要从外部设备获取数据,在不同的外部设备,输入输出的操作各不相同,为了方便程序员对各种设备进行方便的操作,抽象出了流的概念,可以比较流淌着字符的河。在c程序中,文件操作,画面,键盘等的数据输入输出都是通过流的操作

标准流:

我们在启动程序的时候,会默认打开3个流:

stdin:标准输入流,在很多情况下我们都是从键盘输入数据的。

stdout:标准输出流,在大多环境中输出到显示屏界面。

stderr :标准错误流,大多情况下直接输出到显示屏界面。

1.scanf与printf

scanf针对的是标准输入流(键盘)的输入函数。

功能:从(键盘)标准输入流读取格式化的数据。

 printf针对的是标准输出流(屏幕)的输出函数。

功能:将格式化的数据打印到标准输出流上。

 2.fscanf和fprintf

fscanf和fprintf函数适用于所用输入流,输出流。(比scanf多了文件流)。

fprintf比printf多一个参数,第一个参数就是要输出的目标位置,其余跟printf一致。

在文件操作中,我们可以用fprintf输出到文件上。功能与printf基本相同,只不过fprintf可以输出到文件上。

例子:

int main()
{
	FILE* pwrite = fopen("data.txt", "w");
	if (pwrite == NULL) {
		perror("fopen fail");
		exit(1);
	}
	char arr[] = "abcdef";
	fprintf(pwrite, "%s", arr);
	pwrite = NULL;
	return 0;
}

 fscanf同样也有三个参数

int fscanf ( FILE * stream, const char * format, ... );

功能:从一个流中执行格式化输入,fscanf遇到空格和换行时结束。

第一个参数stream:文件指针;

第二个参数format:格式描述;

随后是数目不定的指针参数,存储解析后的数据.

通过fscanf,我们可以把文件中的数据格式化输入字符数组中。

 

3.sscanf和sprintf

1. sprintf可以把一个格式化的数据转化成字符串

例:

2. sscanf可以从字符串中读取一个格式化的数据

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小猪同学hy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值