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是緩衝區的長度,該函式從...