关于scanf()函数返回值及用于多组输入

加油!!!


前言

本文主要介绍scanf()函数的返回值以及用于多组输入的方式


1、scanf()函数简介

函数名: scanf
功 能: 格式化输入(读取数据),以空格和回车作为读取一次的结束标志
用 法: int scanf(char *format[,argument,...]);
调用格式: scanf("<格式化字符串>",<地址表>);
返回值:如果读到了数据,返回的是实际读到的数据的个数,出错时则返回EOF

例如:scanf读取整形

	int a = 0;
	scanf("%d", &a);

scanf()函数是通用终端格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。可以读入任何固有类型的数据并自动把数值变换成适当的机内格式。

2、scanf()返回值详解

1:scanf读取数据,如果读到了数据,返回的是实际读到的数据的个数
2:如果没有读到数据,说明读取失败,返回的是EOF(-1)

3:EOF全称 end of file,表示-1

例如读取两个整形数字,代码如下:

int main()
{
	int a = 0;
	int b = 0;
	int ret = scanf("%d %d", &a, &b);
	printf("ret = %d\n", ret);
	return 0;
}

我们使用ret去记录scanf() 函数的返回值,由于是输入两个数,ret的值应该为2,即使你输入3个数,返回值也是2。

代码执行结果如下:在这里插入图片描述

3、scanf()用于多组输入

方法1:

	int a = 0;
	int b = 0;
	while (scanf("%d %d", &a, &b) == 2)
	{
		//读取到2个数字,scanf返回的是2
	}

方法2:

	while (scanf("%d %d", &a, &b) != EOF)
	{
		//读取到2个数字,scanf返回的是2
		//读取到1个数字,scanf返回的是1
	}

方法3:

	while (~scanf("%d %d", &a, &b))
	{
		//scanf读取失败的时候返回的是EOF,也就是-1
		//-1的补码是
		//11111111111111111111111111111111
		//当对scanf的返回值~(按位取反的时候)得到的是0
		//按位取反是全部二进制位都取反
	}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值