我希望这个程序在我按下回车按钮时停止循环,但终端变成空白并且不显示任何内容。这有什么问题?
#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;
}
如果要scanf()
使用 char,则需要使用char 变量%c
,而不是%d
char 变量:
char c;
scanf("%c",&c);
因此,请参阅以下修复:-
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);
}