在发生错误后清空缓冲区
在发生输入错误时,通常会使标准输入流处于错误状态,这会导致后续的输入操作无法正常执行。为了避免这种情况,可以在发生错误后清空缓冲区,这样就能恢复标准输入流的正常状态。
下面是一个示例代码,可以在遇到错误时清空标准输入流:
#include
#include
int main(void)
{
int n;
char input[100];
printf("Enter a number: ");
if (scanf("%d", &n) != 1) {
printf("Input error!\n");
fflush(stdin);
} else {
printf("You entered: %d\n", n);
}
return EXIT_SUCCESS;
}
在上面的代码中,程序通过scanf函数从标准输入流中读取一个整数。如果读取失败,程序会输出错误信息,并调用fflush函数清空标准输入流。如果读取成功,程序会输出读取到的整数。这样就能避免标准输入流在后续操作中处于错误状态。
上一篇:标准输入是如何实现的?