C语言中清除内存缓冲区的函数是什么??

来源:百度知道 编辑:UC知道 时间:2024/09/12 17:27:50
还有什么常用的易错的函数,如fflush(stdin)之类的

C语言中清除内存缓冲区的函数是fflush( ),清除输入缓冲区用fflush(stdin); 其中stdin表示标准输入。

该函数通常用在输入类函数的前面,用以清除输入缓冲区中的内容,避免接收到上次残留的内容而出错。


举例如下:

1、不加fflush函数:

// 将输入的5个字符存放到数组str中,并输出
int i;
char ch, str[6]={'\0'};
for(i=0; i<5; i++)
{
    scanf("%c", &ch);
    str[i] = ch;
}
printf("%s\n", str);

// 程序只能输入三个字符(每个字符间包含一个回车符),因为不加fflush函数时,将残留在缓冲区中的回车符也当成了一个字符输入到数组str中。


2、加fflush函数:

int i;
char ch, str[6]={'\0'};
for(i=0; i<5; i++)
{
    fflush(stdin);  // 清除留在缓冲区中的回车符,确保接收到的是用户输入的字符
    scanf("%c", &ch);
    str[i] = ch;
}
printf("%s\n",&n