大家好,欢迎来到IT知识分享网。
目录
前言
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); } }
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/128575.html