#include <stdio.h>
int main() {
int a, b;
printf("Enter the values of a and b");
scanf(" %d%d ", &a, &b);
printf("a=%d b=%d", a, b);
return 0;
}
为什么我们必须插入3个输入,因为双引号前后都有空格?
您的scanf()
格式" %d%d "
有多余的空格,并带有不希望的副作用:
第一个是多余的,它指示scanf()
跳过任何前导空格,但这已经作为%d
转换的一部分进行了。去掉它。
尾随的引起您的问题:它告诉scanf()
您跳过第二个整数之后的所有尾随空格。因此,它将继续读取输入,直到看到不是空格或流末尾的内容。也将其删除。
请注意,scanf()
在使用它们的值之前,还应验证是否已转换2个整数。还要始终打印尾随换行符,因为如果不这样做,某些系统将无法正确刷新输出。
#include <stdio.h>
int main(void) {
int a, b;
printf("Enter the values of a and b: ");
if (scanf("%d%d", &a, &b) == 2) {
printf("a=%d b=%d\n", a, b);
}
return 0;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句