c语言scanf – fflush(stdin) – 不起作用
发布时间:2020-12-16 10:35:34 所属栏目:百科 来源:网络整理
导读:参见英文答案 Using fflush(stdin)????????????????????????????????????4个 当我多次使用scanf时,程序不会等待另一个输入.相反,它退出 我了解到我可以在scanf函数中的转换说明符之前放置一个空格 – 是的,这解决了问题,我想这与输入流有关,即 – 如果它是输
参见英文答案 >
Using fflush(stdin)????????????????????????????????????4个
当我多次使用scanf时,程序不会等待另一个输入.相反,它退出 我了解到我可以在scanf函数中的转换说明符之前放置一个空格 – 是的,这解决了问题,我想这与输入流有关,即 – 如果它是输入流中的换行符,scanf将消耗它立刻. scanf(" %f",&value); 但如果是这样 – 为什么我不能使用fflush(stdin)呢?我试过但它不起作用. #include <stdio.h> int main(void) { float value; char ch; printf("input value: "); scanf("%f",&value); fflush(stdin); printf("input char: "); scanf("%c",&ch); return 0; } 解决方法
fflush()用于清除输出缓冲区.由于您尝试清除输入缓冲区,因此可能会导致未定义的行为.
这是一个SO问题,解释了为什么这不是一个好的做法: Using fflush(stdin) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |