【发布时间】:2018-06-02 20:46:15
【问题描述】:
#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() 时没有任何空格,那么它只要求两个输入正如预期的那样,所以我很困惑这两者之间有什么区别,请解释...
【问题讨论】:
-
你是指第二个
%d之后的空格还是第一个之前的空格?您要忽略第一个值还是第三个值? -
我要求两者,在第一个 %d 之前和第二个 %d 之后,我只想知道为什么编译器在我的代码中使用 scanf 中的空格时要求三个输入
-
忽略输入的可读版本是使用
%*d。 -
scanf("%d%d", &a, &b);将读取 2 个整数,仅此而已。 -
请注意,格式字符串中的前导空格是不需要的,因为
%d指令自动会忽略初始空格字符,格式字符串中的尾随空格是错误的这会导致交互式输入出现问题。
标签: c input output scanf whitespace