我写了两个程序。在第一个我没有使用getchar从键盘中取一个字符,在这种情况下,编译完全没有第二个scanf。所以为了克服这一点,我使用了getchar。在这种情况下,我成功地提供了输入,但没有进行比较。虽然我输入的输入为“d”,而“d”输出仅为“再见”。
#include<stdio.h>
main(){
char c,f;
printf("e");
scanf("%c",&c);
printf("one more");
scanf("%c",&f);
if(c=='d'&&f=='d')
printf("hi");
else
printf("bye");
}
#include<stdio.h>
main(){
char c,f;
printf("e");
scanf("%c",&c);
printf("one more");
scanf("%c",&f);
getchar();
if(c=='d'&&f=='d')
printf("hi");
else
printf("bye");
}
答案 0 :(得分:2)
新行字符将保留在标准输入中,因为scanf("%c")
不会使用它。这意味着第二个scanf()读取换行符charcacter,而不是下一个输入。更改为scanf(" %c")
将是一个解决方案,它将跳过前导空格。