Shu*_*bey 2 c scanf character format-specifiers
的时候,不包括%d和%C规范之间的空白在scanf函数的在下面的程序格式字符串,并在运行时间期间为"4小时"给输入,则输出是"整数= 4和字符= .
在这种情况下,变量"c"如何获取输入,如果我在%d和%c规范之间包含空格,它会有什么不同?
#include <stdio.h>
int main()
{
char c;
int i;
printf("Enter an Integer and a character:\n");
scanf("%d %c",&i,&c);
printf("Integer = %d and Character = %c\n",i,c);
getch();
}
Run Code Online (Sandbox Code Playgroud)
如果scanf()仔细阅读规范,大多数格式说明符会跳过前导空格.在标准C中,有三个不是:
%n - 到目前为止已经处理了多少个字符%[…] - 扫描集%c - 读一个角色.(POSIX增加了第四个,%C相当于%lc.)
输入的空白字符(由指定的
isspace)应当被跳过,除非转换规范包括[,c,C,或n转换说明.
添加的空间之间%d,并%c表示该整数被读取之后可选空格被跳过并且(未白空间)之前字符被读取.