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. 淹沒, 沖洗, 使臉紅, 使激動, 使齊平, 使驚飛
【醫】 潮紅