关于scanf()

1、scanf()根据格式说明符读取输入,返回值为成功读取的个数。

例如,输入1个整数,代码如下:

#include<stdio.h>

int main(void)
{
	int a, b;

	a = scanf("%d", &b);
	printf("input: %d\n", b);
	printf("result: %d\n", a);

	return 0;
}

运行如下:

(1)输入整数14,结果显示成功读取1个整数。


(2)输一个字符串,读取失败



2、scanf()可以读取多个输入,返回值为成功读取的个数。

例如,读取1个整数和1个浮点数,代码如下:

#include<stdio.h>

int main(void)
{
	int a, b;
	float c;

	a = scanf("%d%f", &b, &c);
	printf("input: %d %f\n", b, c);
	printf("result: %d\n", a);

	return 0;
}

运行如下:

(1)输入10和20,成功读取,返回值为2。


(2)输入10和cc,只成功读取整数,返回值为1。


其实,如果输入不换行,也能读取最前面的整数。


(3)输入c10,则两个都读取失败,返回值为0。程序会先检测输入能否作为整数,一直到输入末尾,结果发现没有能读取为整数的。此时,输入的东西都读取完了,于是浮点数就更没有可能被读取了。



3、scanf()格式符中间可以插入标点,以区分输入变量,例如逗号,分号等等,那么输入也必须按照该格式,而且这种情况下,一旦按下回车就直接开始读取两个输入了,而不是像前面那样等你输入第2个。

例如,在%d与%f之间加个逗号,那么输入完整数之后,必须输入逗号,再输入浮点数,才能正确读取,代码如下:

#include<stdio.h>

int main(void)
{
	int a, b;
	float c;

	a = scanf("%d,%f", &b, &c);
	printf("input: %d %f\n", b, c);
	printf("result: %d\n", a);

	return 0;
}

运行如下:

(1)按要求输入,结果正确。


(2)未按要求输入,结果……


另外,scanf()能自动屏蔽空格,比如



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值