欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

c語言的清除輸入流函數(shù) c語言清除指令

如何清除c++輸入流

在標準C中只定義了輸出流、更新流的刷新,而輸入流的刷新是未定義的。

創(chuàng)新互聯(lián)自2013年創(chuàng)立以來,先為安慶等服務建站,安慶等地企業(yè),進行企業(yè)商務咨詢服務。為安慶企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務解決您的所有建站問題。

當然,在vc下面的fflush(stdin)是微軟自己擴展的,而GCC下面是沒有的。

c語言:

while( (c=getchar())!='\n' c != EOF)

;

c++:

cin.clear(); //這里如果用cin.clear(istream::failbit); 是不行的

cin.ignore(numeric_limitsstreamsize::max(),'\n');

關(guān)于c語言的一個問題 輸入一組字符串,一個函數(shù)刪去其中空格,循環(huán)直到用戶輸入空行

用 cin.get()可以讀入空格。

不過用過cin.get()后記得 給數(shù)據(jù)流清空。否則會有意料外的結(jié)果。cin.get()會連回車都讀進去的。

如果不清空數(shù)據(jù)流 就不可以連續(xù)兩次調(diào)用cin.get()。這樣只有第一個cin.get()會讀入數(shù)據(jù),第二個讀進去的只有一個回車。

清空數(shù)據(jù)流的函數(shù)是cin.sync()

用法如下:

char s1[100];

cin.get(s1,100);

cin.sync(); //此處清空輸入流

C語言中如何清空輸入輸出緩沖區(qū)

最簡單的是用fflush()函數(shù)。

此函數(shù)包含在stdio.h頭文件中,用來強制將緩沖區(qū)中的內(nèi)容寫入文件。

函數(shù)原型:int fflush(FILE *stream) ;

函數(shù)功能:清除一個流,即清除文件緩沖區(qū).

常用場合:

一、ff(stdin)刷新標準輸入緩沖區(qū),把輸入緩沖區(qū)里的東西丟棄

fflush(stdout)刷新標準輸出緩沖區(qū),把輸出緩沖區(qū)里的東西打印到標準輸出設備上。

二、scanf()函數(shù)接收輸入數(shù)據(jù)時,遇以下情況結(jié)束一個數(shù)據(jù)的輸入:(不是結(jié)束該scanf函數(shù),scanf函數(shù)僅在每一個數(shù)據(jù)域均有數(shù)據(jù),并按回車后結(jié) 束)。

① 遇空格、“回車”、“跳格”鍵。

② 遇寬度結(jié)束。

③ 遇非法輸入。

鍵盤緩沖區(qū)就可能有殘余信息問題。

scanf()函數(shù)應該只是掃描stdin流,這個殘存信息是在stdin中

解決就要在scanf()函數(shù)之后加個fflush(stdin)

三、寫文件的時候 不會馬上進行物理磁盤的文件讀寫,而是先寫入緩存,當緩存中內(nèi)容達到一定程度后再寫

FILE *fp=fopen("a.txt","w");

fprintf(fp,"abcdef");

fflush(fp);

C語言fflush(stdin)函數(shù)是什么意思,在什么情況下用它

1、fflush(stdin)是清空輸入緩沖區(qū)的意思。stdin就是標準輸入 std即standard(標準),in即input(輸入),合起來就是標準輸入。 一般就是指鍵盤輸入到緩沖區(qū)里的東西。

2、在清除文件緩沖區(qū)時使用,文件以寫方式打開時將緩沖區(qū)內(nèi)容寫入文件。

例:

#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("\nFile was flushed, Press any key to quit:");

getch();

return 0;

}

void flush(FILE *stream)

{

int duphandle;

/* flush the stream's internal buffer */

fflush(stream);

/* make a duplicate file handle */

duphandle = dup(fileno(stream));

/* close the duplicate handle to flush the DOS buffer */

close(duphandle);

}

擴展資料

使用fflush的注意事項

1、MSDN 文檔里也清楚地寫著:fflush on input stream is an extension to the C standard (fflush 操作輸入流是對C標準的擴充)。以下是 C99 對 fflush 函數(shù)的定義:int fflush(FILE *stream);

2、如果stream指向輸出流或者更新流(update stream),并且這個更新流最近執(zhí)行的操作不是輸入,那么fflush函數(shù)將把任何未被寫入的數(shù)據(jù)寫入stream指向的文件(如標準輸出文件stdout)。

3、fflush函數(shù)的行為是不確定的。fflush(NULL)清空所有輸出流和上面提到的更新流。如果發(fā)生寫錯誤,flush函數(shù)會給那些流打上錯誤標記,并且返回EOF,否則返回0。

4、如果 stream 指向輸入流(如 stdin),那么 fflush 函數(shù)的行為是不確定的。故而使用 fflush(stdin) 是不正確的。

參考資料來源:百度百科—fflush(stdin)

C語言中流是什么意思?

C語言的I/O系統(tǒng)為用戶提供了一個接口,該接口與實際的存取設備無關(guān)。只是設備的一個抽象表示形式。這個抽象的接口稱為流,實際的設備稱為文件。

C文件系統(tǒng)可以與各種設備一起使用,如打印機、硬盤、終端等,緩沖文件系統(tǒng)可以將每個設備轉(zhuǎn)換成邏輯設備,即所謂的流。所有的流工作方式類似,所以很容易操作不同的設備。流有2種類型:文本流和二進制流。

文本流是一系列字符,可以由多行構(gòu)成,每行由一個換行符終止。

二進制流是一系列字節(jié),并與外部設備上的字節(jié)一一對應。

C語言中流指什么,不要復制,用自己的理解解釋一下,感謝了

版本四

流 原從stream翻譯來。

什么電腦外設控制,磁盤文件輸入輸出,只要是輸入或者輸出所產(chǎn)生的數(shù)據(jù)都是流。

從linux對于硬件設備的控制很容易看出,對于硬件和磁盤上的文件,C語言的操作方法基本上一樣。linux中C語言也是把硬件當做文件進行操作。(本質(zhì)上,它把外設與txt文本文件看成一類東西。)流的概念的提出,我認為是為了程序?qū)τ谖谋竞陀布囊幌盗胁僮鞫O定的統(tǒng)一標準。從程序員角度來看,就不需要知道各個操作的細節(jié),編程的時候,統(tǒng)一把外設都當成文件進行操作就OK了。比如對于聲卡,先OPEN打開,然后write寫入,就完成喇叭發(fā)聲,然后close關(guān)閉。和對于文本操作基本一樣。

不管對設備或是文件(廣義上都是文件)的輸入輸出操作,而產(chǎn)生的數(shù)據(jù),都是I/O流。而C語言中的I/O流能分為兩種:文本流,二進制流。很容易看出文本流控制很二進制流控制的區(qū)別。你用TC,fopen打開一個MP3或者別的32位文件,然后讀取,會發(fā)現(xiàn)用文本流打開后,文件只能讀到開頭一點點。因為32位音樂文件有很多的'00'數(shù)據(jù),文本流會把它當做文件結(jié)束符而結(jié)束讀取。而二進制流打開方式則可以從頭讀到尾。(這時候輸出的時候可能存在點問題,實驗的時候可以用二進制 流方式再寫入到另外一個文件來觀察。)

流是由輸入輸出產(chǎn)生的,是用于數(shù)據(jù)交換或轉(zhuǎn)換的統(tǒng)一的標準(特指這一類的數(shù)據(jù))。C++和一些編程語言中定義的流(stream)類,就是對這類數(shù)據(jù)的定義。并通過成員函數(shù)對“流”進行操作。這樣,用戶和程序,程序和外設之間都是通過“流”進行交互。而程序員不需要知道“流”的底層到底是怎么實現(xiàn)的。 就好像吃飯和排泄。數(shù)據(jù)流中定義了,先牙齒咀嚼,然后胃部消化,然后小腸吸收,然后大腸發(fā)酵,然后你懂的。你只需要CIN,還有COUT,就能控制吃喝拉撒。你管它是細嚼還是狼吞?你管它便秘還是拉肚子?吞吐量是電腦性能的事。你管它是先進小腸還是先進胃?底層是內(nèi)核的事。你只需要擁有了CIN和COUT,你就擁有了一切。

從廣義上來說,流也是文件,不同于txt文本類的文件(流屬于數(shù)據(jù),數(shù)據(jù)等同于文件)。你可以對流進行各種操作。緩沖區(qū)的定義,也是為了對流的操作。

綜上,我們知道了,流是數(shù)據(jù),流是標準,流是文件。流的作用我們知道了,那么“流”到底是個什么玩意呢?非常同意 448634095 所說的。用著用著自己就知道是什么玩意了。就好像剛開始學編程 鬧不明白函數(shù) 是個啥意思,和數(shù)學上的函數(shù)一點也不一樣。你現(xiàn)在知道整形是什么了吧?你能不能給我舉個簡單的列子給我解釋下整形是什么?

注意:流和 輸入輸出的緩沖區(qū)是兩個概念。

文章標題:c語言的清除輸入流函數(shù) c語言清除指令
鏈接URL:http://chinadenli.net/article42/hpephc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、品牌網(wǎng)站建設、標簽優(yōu)化、關(guān)鍵詞優(yōu)化、建站公司、品牌網(wǎng)站設計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)