#include<stdio.h>
int main() {
int a,b;
printf("Enter values of a and b\n");
scanf(" %d%d ",&a,&b);
printf("a=%d b=%d", a, b);
return 0 ;
}
在这里,如果我使用 scanf() ,就像在我的代码中一样,那么编译器希望用户输入三个值,我无法理解这一点,当我使用不带任何空格的 scanf() 时,它只要求输入两个值,所以我很困惑这两者之间有什么区别,请解释一下......
如果你在数字后面留一个空格,scanf
必须确定要匹配的空格的结尾:
scanf("%d ", &a);
这里的空格是指阅读并丢弃all空格。必须出现非空白字符(或 EOF)scanf
明确什么all以便它们可以被正确读取和丢弃。
考虑这个输入流(点是字符指示符):
1 2
........
如果你打电话scanf("%d")
,那么调用后,剩余的流是
2
....
...其中的空格将被丢弃下次阅读时。请注意,读取数字时,前导空格会自动丢弃。
如果你打电话scanf("%d ")
相反,剩余的流是
2
.
您会看到空格立即消失了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)