A. c语言fflush(stdin)函数是什么意思,在什么情况下用它
1、fflush(stdin)是清空输入缓冲区的意思。stdin就是标准输入 std即standard(标准),in即input(输入),合起来就是标准输入。 一般就是指键盘输入到缓冲区里的东西。
2、在清除文件缓冲区时使用,文件以写方式打开时将缓冲区内容写入文件。
例:
#include <conio.h>
#include <io.h>
#include <stdio.h>
#include <string.h>
void flush(FILE *stream);
int main(void)
{
FILE *stream;
char msg[] = "This is a test";
/* create a file */
stream = fopen("DUMMY.FIL", "w");
/* write some data to the file */
fwrite(msg, strlen(msg), 1, stream);
clrscr();
printf("Press any key to flush DUMMY.FIL:");
getch();
/* flush the data to DUMMY.FIL without closing it */
flush(stream);
printf(" File was flushed, Press any key to quit:");
getch();
return 0;
}
void flush(FILE *stream)
{
int phandle;
/* flush the stream's internal buffer */
fflush(stream);
/* make a plicate file handle */
phandle = p(fileno(stream));
/* close the plicate handle to flush the DOS buffer */
close(phandle);
}
(1)c语言中flush什么意思扩展阅读
使用fflush的注意事项
1、MSDN 文档里也清楚地写着:fflush on input stream is an extension to the C standard (fflush 操作输入流是对C标准的扩充)。以下是 C99 对 fflush 函数的定义:int fflush(FILE *stream);
2、如果stream指向输出流或者更新流(update stream),并且这个更新流最近执行的操作不是输入,那么fflush函数将把任何未被写入的数据写入stream指向的文件(如标准输出文件stdout)。
3、fflush函数的行为是不确定的。fflush(NULL)清空所有输出流和上面提到的更新流。如果发生写错误,flush函数会给那些流打上错误标记,并且返回EOF,否则返回0。
4、如果 stream 指向输入流(如 stdin),那么 fflush 函数的行为是不确定的。故而使用 fflush(stdin) 是不正确的。
B. C语言中如何清空输入输出缓冲区
最简单的是用fflush()函数。
此函数包含在stdio.h头文件中,用来强制将缓冲区中的内容写入文件。
函数原型:int
fflush(FILE
*stream)
;
函数功能:清除一个流,即清除文件缓冲区.
常用场合:
一、ff(stdin)刷新标准输入缓冲区,把输入缓冲区里的东西丢弃
fflush(stdout)刷新标准输出缓冲区,把输出缓冲区里的东西打印到标准输出设备上。
二、scanf()函数接收输入数据时,遇以下情况结束一个数据的输入:(不是结束该scanf函数,scanf函数仅在每一个数据域均有数据,并按回车后结
束)。
①
遇空格、“回车”、“跳格”键。
②
遇宽度结束。
③
遇非法输入。
键盘缓冲区就可能有残余信息问题。
scanf()函数应该只是扫描stdin流,这个残存信息是在stdin中
解决就要在scanf()函数之后加个fflush(stdin)
三、写文件的时候
不会马上进行物理磁盘的文件读写,而是先写入缓存,当缓存中内容达到一定程度后再写
FILE
*fp=fopen("a.txt","w");
fprintf(fp,"abcdef");
fflush(fp);
C. 想知道,C#中的文件缓冲的 流是什么意思Flush() 执行的时候,究竟做了什么,流程是什么啊 缓冲区干嘛的
你写了一个程序,其中要对硬盘上的一个文件操作,FileStream fs = new FileStream(fileName)
这样就是建立了一个文件缓冲流,换句话的意思就是说你通过这条程序,计算机给了一一块内存空间,但是呢这块内存空间不是你想干什么就干涉么的,他是专门存fileName这个文件里面的内容的,内存空间的大小,和其他信息,简单地操作时没有办法访问的。当你要从文件里面读取一个Int整数的时候,程序做的不仅仅是读取一个int型整数,他会把该数据附近的一大块数据都读出来放在刚才的那块空间中,为什么这么做呢,因为CPU访问硬盘比访问内存慢多了,所以一开始读出很多的数据,后面需要使用的时候直接使用读出来的,就防止了再次访问硬盘。
相应的,你要网文件里面写入数据,也是先存到这个内存里,等存的东西足够多了,或者过了足够的时间,系统一次性把内容写入硬盘。
Flush的作用就是强制执行了一次把数据写出硬盘,这样,你写入的数据确实到了文件中,否则如果程序突然中断,你要写入的内容也许还没写到文件中,就造成了数据丢失。
D. java中 flush方法的作用是什么
java中 flush专业术语叫缓冲区。
当你print或者write的时候,会暂时保存在缓冲区,并没有发送出去,这是出于效率考虑的,因为数据不会自己发送过去,必须有其他机制,而且这个很消耗资源,就像马桶你需要很多水,才能冲走,你如果扔一点东西,就冲一次水,那你水费要爆表了,同样如果你写一行文字,或者一个字节,就要马上发送出去,那网络流量,CPU使用率等等都要爆表了,所以一般只有在你真正需要发送否则无法继续的时候,调用flush,将数据发送出去。
因为操作系统的某些机制,为了防止一直不停地磁盘读写,所以有了延迟写入的概念。
在网络web服务器上也是,为了防止写一个字节就发送一个消息,所以有缓冲区的概念,比如64K的内存区域,缓冲区写满了再一次性写入磁盘之中(或者发送给客户端浏览器)。
flush方法一般是程序写入完成时执行。随后跟着close方法
E. flush什么意思
flush()
是把缓冲区的数据强行输出,
主要用在IO中,即清空缓冲区数据,一般在读写流(stream)的时候,数据是先被读到了内存中,再把数据写到文件中,当你数据读完的时候不代表你的数据已经写完了,因为还有一部分有可能会留在内存这个缓冲区中。这时候如果你调用了close()方法关闭了读写流,那么这部分数据就会丢失,所以应该在关闭读写流之前先flush()。
F. C语言中getkey ,getch,flush这些函数是什么意思应该如何使用 谢谢
getkey()应该是得到键值的函数,C语言里有这个函数吗?我怎么没见过(在下又孤陋寡闻了,汗,,,)我觉得需要自己定义一个吧,不知道LZ在哪儿看见的,先不废话了,getch()是从键盘得到一个字符,用法如:。。。char ch;getch(ch);//OR ch=geych();。。。。现在很多编译器不承认这个函数了,最好写成getchar(),用法没变;flush()是刷新屏幕用的吧,或者是刷新缓存,,,哦,忘了,,自汗,,,希望可以帮到LZ
G. c语言中的flush函数怎样用
是fflush(),它作用是清空输入/输出流,在VC中文件名是.CPP的话就可以用,用法是:
fflush(stdin); //清空输入流
fflush(stdout); //清空输出流
stdin是系统自动生成的指针标准输入流,stdout是系统自动生成的指针标准输出流
H. c 语言中的flush
http://ke..com/view/1913351.html
I. flush是什么意思
n. 流溢, 面红, 旺盛, 发烧, 惊飞的鸟, 同花牌
a. 丰足的, 齐平的, 满盈的, 泛滥的
ad. 齐平地, 直接地
vi. 脸发红, 奔涌, 旺盛, 惊飞
vt. 淹没, 冲洗, 使脸红, 使激动, 使齐平, 使惊飞
【医】 潮红