-4

我希望这个程序在我按下回车按钮时停止循环,但终端变成空白并且不显示任何内容。这有什么问题?

#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;
}
4

2 回答 2

1

如果要scanf()使用 char,则需要使用char 变量%c,而不是%dchar 变量:

char c;
scanf("%c",&c);
于 2013-09-27T15:29:51.810 回答
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);
   }
于 2013-09-27T15:32:38.310 回答