解决linux下fflush(stdin)无效

Posted sdushmily

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决linux下fflush(stdin)无效相关的知识,希望对你有一定的参考价值。

scanf("%d", &i); 只能接受整数,如果用户输入了字母,则这个字母会遗留在“输入缓冲区”中。
因为缓冲中有数据,故而 scanf 函数不会等待用户输入,直接就去缓冲中读取,可是缓冲中的却是字母,
这个字母再次被遗留在缓冲中,如此反复,从而导致不停地输出

 

void clean_stdin(void)
{
    int c;
    do {
        c = getchar();
    } while (c != 
 && c != EOF);
}

 

以上是关于解决linux下fflush(stdin)无效的主要内容,如果未能解决你的问题,请参考以下文章

ACM的fflush(stdin)的问题

搞懂 fflush(stdout)

fflush(stdin) 在 C 编程中有啥作用? [复制]

fflush(stdin)和rewind(stdin)

leeson_020 分支语句 笔记

如何在C中检查stdin是不是为空