我希望这个程序在我按下回车键时停止循环,但是终端变成空白而且没有显示任何内容。这有什么不对吗?
#include <stdio.h>
int main()
{
int c;
printf("Enter a char(To exit loop press enter)");
for(c=' ';c!='\n';)
{
scanf("%d",&c);
putchar(c);
}
return 0;
}
答案 0 :(得分:1)
如果你想scanf()
为char,你需要使用%c
而不是%d
和char变量:
char c;
scanf("%c",&c);
答案 1 :(得分:1)
因此,请参阅以下修复: -
char c ; // Use a char
char ch;
printf("Enter a char(To exit loop press enter)");
scanf("%c",&c);
for(;c!='\n';)
{
//Eat up the trailing newline from previous input
while(( ch =getchar() ) != '\n' && (ch != EOF ));
scanf("%c",&c);
putchar(c);
}