C语言-scanf函数的返回值

目录

前言

一.正整数的情况

1.介绍

2.代码实例

2.1 输入整数型 

2.2 输入字符型

2.3 输入字符串型

二.0的情况

1.介绍

2.代码实例

三.EOF的情况

1.介绍

2.代码实例


 

前言

scanf 的返回值有三种情况:

  • 正整数
  • 0  
  • EOF

一.正整数的情况

1.介绍

当scanf函数接收到几个字符时,它的返回值就是几。

2.代码实例

2.1 输入整数型 

#include <stdio.h>

int main()
{
	int x, y;
	int m = scanf("%d %d", &x, &y);
	printf("%d\n",m);

	return 0;
}
情况一
假如输入:2003 2004
输出:2

情况二
假如输入:2003 2004 2005 2006
输出:2

情况三
假如输入:2003,2004
输出:1
  • 情况一,scanf中只有两个%d来接受数字,当输入两个数字时,scanf的返回值是2 。
  • 情况二,当输入超过两个数字时,scanf的返回值还是2,因为scanf函数只读取到了两个输入数据,所以它的返回值是2,与其他无关。
  • 情况三,在scanf中,是以%d %d的形式来接收数据的,但是输入的确实%d,%d的形式,可以正确读取到2003,无法读取2004,所以返回1(正确输入了一个变量)。

2.2 输入字符型

#include <stdio.h>

int main()
{
	char a, b, c, d;
	int n = scanf("%c %c %c %c", &a, &b, &c, &d);
	printf("%d\n",n);

	return 0;
}
假如输入:a b c d
输出:4

可以看出,当在第二个scanf函数中输入四个字符时,scanf的返回值是一个整数4。字符型也可能会出现上述三个情况

2.3 输入字符串型

#include <stdio.h>

int main()
{
	char arr[100];
	int n = scanf("%s", &arr);
	printf("%d\n",n);

	return 0;
}
假如输入:galaxypokemon
输出:1

因为只输入了一个字符串,所以scanf的返回值是1。 字符串型也可能会出现上述三个情况

二.0的情况

1.介绍

当scanf的输入类型不匹配时,其返回值就是0

2.代码实例

#include <stdio.h>

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

	return 0;
}
假如输入:a
输出:0

可以看到,输入类型是int的情况下,我们输入了字符类型的字母a,就会导致scanf的返回值变为0。

三.EOF的情况

1.介绍

EOF是在标准库函数里定义的常量,ASCII码值为-1。EOF是End Of File的缩写,意为文件结束的标志。在输入时按ctrl+z后,可以看到屏幕里会出现^Z的字符,就可以结束输入

2.代码实例

#include<stdio.h>

int main()
{
	int x;
	while (scanf("%d", &x) != EOF) {
		printf("%d\n", x);
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值