有没有除了清空输入缓存的其他办法能解决这个问题。

#include
int main(void)
{
printf("你输入什么我打印什么,输入q退出\n");
char ch = getchar();
while (ch != 'q')
{
putchar(ch);
printf("你输入什么我打印什么,输入q退出\n");
ch = getchar();//这里会读入回车,除了清空输入缓存的办法就没有能跳过读入回车嘛
}
return 0;
}

修改后的代码如下,测试满足要求。

 int main()
{
    printf("你输入什么我打印什么,输入q退出\n");
    char ch = getchar();
    while (ch != 'q')
    {
        putchar(ch);
        printf("你输入什么我打印什么,输入q退出\n");

        do
        {
            ch = getchar();
        } while (ch == '\n');
    }
    return 0;
}

图片说明

可以加判断。。。。。。。

while( getchar() != '\n' &&getchar() != EOF ) ;

可以试试这个,放在上一个输入之后