C++中fflush()函数与rewind()函数

fflush()函数rewind()函数都可以使得scanf()函数屏蔽之前输入的回车符。这两个函数的参数都可以是stdin变量。

1 stdin

stdin一起使用的还有stdoutstderr,这三个变量都是FILE结构的指针,在stdio.h头文件中定义。

stdin是标准的输入流;stdout是标准的输入流;stderr是标准的错误流。默认情况下,stdin从键盘中读取数据,而stdoutstderr将信息在显示器中显示。这三个变量是常量指针,不能对其进行赋值。

2 fflush()函数

该函数的作用是清空在1 stdin”中提到的三种流。

2.1 强制显示输出缓冲区

fflush(stdout);

以上代码的功能是将与输出流关联的缓冲区的内容在屏幕上显示。在每个最后不带\n”的printf()函数后面,最好加上以上代码。因为不带“\n”的printf()函数有可能不会及时的在屏幕上显示。

printf(“Hello World”);

fflush(stdout);


2.2 清空输入缓冲区

fflush(stdin);

以上代码的功能是清空输入缓冲区中的内容。该代码用在scanf()函数之前,用于屏蔽输入缓冲区中的回车符号。

scanf(“%d”, &i);

fflush(stdin);

scanf(“%d”, &j);


3 rewind()函数

也可以是用rewind()函数来清理输入缓冲区中的数据,达到屏蔽回车符号的作用。该函数的使用方法请参考《C++中getchar()的使用方法》


猜你喜欢

转载自blog.csdn.net/hou09tian/article/details/80828253