fgets 函式和fputs函式

2021-08-07 19:20:28 字數 1648 閱讀 5316

fgets()函式原型:char *fgets(char *line,int maxline,file *fp)

fgets()函式從fp指向的檔案中讀取下乙個輸入行,(包括換行符,這點與gets()不同,gets()會自動的丟棄換行符),並將它存在陣列之中,它最多讀取maxline-1t個字元讀取的行將以'\0'結尾儲存到陣列中,結束的條件是讀入maxline-1個字元或者讀到第乙個換行符,通常條件下,fgets()將返回line,但如果遇到檔案結尾或者發生錯誤,返回null

fgets()函式函式的第三個引數是指明要讀如的檔案,但是如果從鍵盤輸入的資料,則以stdin標準輸入作為引數,該識別符號定義在stdio.h中

fputs()函式原型:int puts(char *line,file *fp)

輸入函式fputs,將乙個字串(不自動新增換行符,而puts()會自動新增換行符),寫入到乙個檔案中,如果要顯示在計算機顯示器中,應使用stdout標準輸出作為引數,該識別符號定義在stdio.h中

當輸入的字元小於maxline-1時

輸入的hello,比fgets()讀入的輸入行短,因此,  hello\n\0被儲存在陣列中,而puts()顯示該字串hello\n\0又在末尾自動新增了換行符,因此輸入的hello後面有乙個空行,而fputs不會自動新增換行符,只會輸出hello\n\0所以下一行是end

當輸入的字元等於maxline-1時

輸入的hello,wor比fgets()讀入的輸入少一,因此,  hello,wor\0被儲存在陣列中,而puts()顯示該字串hello,wor\0

又在末尾自動新增了換行符,因此,下一行就輸出了,而fputs不會自動新增換行符,所以後面直接是end

當輸入的字元大於maxline-1時

和上面是等於是相同的

這個程式中,輸入過長的沒有問題,程式中的fgets()第一次讀入9個字元,並儲存為hello,wor\0,接著fputs列印該字串,進入迴圈後,讀入ld,i love\0並儲存ld,i love\0,接著fputs列印,最後 you\n\0讀入儲存,由於字串中的\n,所以列印到下一行開始處

如果要丟棄換行符,可以使用:

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

continue;

fgets函式 和 fputs函式

char fgets char s,int size,file stream 功能 從檔案流讀取一行,送到緩衝區,使用時注意以下幾點 返回值 成功時s指向哪返回的指標就指向哪,出錯或者讀到檔案末尾時返回nul fgets函式,引數s是緩衝區的首位址,size是緩衝區的長度,該函式從stream所指的...

fgets函式與fputs函式

華清遠見嵌入式培訓中心講師。include char fgets char s,int size,file stream 功能 從檔案流讀取一行,送到緩衝區,使用時注意以下幾點 返回值 成功時s指向哪返回的指標就指向哪,出錯或者讀到檔案末尾時返回nul fgets函式,引數s是緩衝區的首位址,siz...

fgets函式與fputs函式

i nclude char fgets char s,int size,file stream 功能 從檔案流讀取一行,送到緩衝區,使用時注意以下幾點 返回值 成功時s指向哪返回的指標就指向哪,出錯或者讀到檔案末尾時返回nul fgets函式,引數s是緩衝區的首位址,size是緩衝區的長度,該函式從...