c語言中的fgets函式,C語言裡fgets函式怎麼用?

2021-03-11 08:12:17 字數 1652 閱讀 7316

1樓:暗影之王

fgets()函式用於從檔案流中讀取一行或指定個數的字元,其原型為:

版char * fgets(char * string, int size, file * stream);

引數說明:

string為一個字元陣列,用來保權

存讀取到的字元。

size為要讀取的字元的個數。如果該行字元數大於size-1,則讀到 size-1 個字元時結束,並在最後補充' \0';如果該行字元數小於等於 size-1,則讀取所有字元,並在最後補充 '\0'。即,每次最多讀取 size-1 個字元。

stream為檔案流指標。

【返回值】讀取成功,返回讀取到的字串,即string;失敗或讀到檔案結尾返回null。因此我們不能直接通過fgets()的返回值來判斷函式是否是出錯而終止的,應該藉助feof()函式或者ferror()函式來判斷。

注意:fgets()與gets()不一樣,不僅僅是因為gets()函式只有一個引數 file *stream,更重要的是,fgets()可以指定最大讀取的字串的個數,杜絕了gets()使用不當造成快取溢位的問題。

2樓:匿名使用者

哦 這裡是特殊情況。

initial這個陣列長度只有2, 讀進來一個資料就滿了(因為第二個位置要寫0呢。 所以後面的回車沒被讀進來,因為緩衝區滿了。

3樓:讓清茅笑寒

fgets函式原型如下:

char

*fgets(char

*s,int

n,file

*stream);

它一次從檔案中讀取一行,包括換行符,放入字串s中,並且加上字串結束標誌符'\\

4樓:匿名使用者

好像unix裡面換行符必須是\n\r兩個字元,會不會是fgets在unix系統裡面執行時只能讀取\n,把\r留了下來.

我沒用過unix,等候高手指正.

5樓:匿名使用者

函式的功能是從指定的檔案中讀一個字串到字元陣列中,函式呼叫的形回式為:fgets(字元陣列名

答,n,檔案指標);

其中的n是一個正整數。表示從檔案中讀出的字串不超過 n-1個字元。在讀入的最後一個字元後加上串結束標誌'\0'。

1) 在讀出n-1個字元之前,如遇到了換行符或eof,則讀出結束。

2) fgets函式也有返回值,其返回值是字元陣列的首地址。

c語言裡fgets函式怎麼用?

6樓:匿名使用者

fgets(由檔案中讀取一字串)

表標頭檔案

include

定義函式

char * fgets(char * s,int size,file * stream);

函式說明

fgets()用來從引數stream所指的檔案內讀入字元並存到引數s所指的記憶體空間,直到出現換行字元、讀到檔案尾或是已讀了size-1個字元為止,最後會加上null作為字串結束。

返回值gets()若成功則返回s指標,返回null則表示有錯誤發生。

範例 #include

main()

執行 this is a test /*輸入*/this is a test /*輸出*/

C語言中fgets和fgetc的區別

1 fgets和fgetc都是檔案函式中的輸入函式。其中第fgets是輸入一個字串,而fgetc則是輸入一個字元。2 例如 include include int main void 可以輸入4個字元,沒問題。另外fgets是從檔案裡面讀取,gets 才是終端輸入 你可以測試一下嘛,你輸入4個字元後...

c語言scanf 輸入函式,c語言中的scanf 函式的用法

scanf是c語言中的一個輸入函式,與printf函式一樣,都被宣告在標頭檔案stdio.h裡,因此在使用scanf函式時要加上 include 在有一些實現中,printf函式與scanf函式在使用時可以不使用預編譯命令 include 它是格式輸入函式,即按使用者指定的格式從鍵盤上把資料輸入到指...

c語言怎麼呼叫庫函式求函式值,c語言中不用庫函式怎麼求冪指數

c cos 3.5678 就是呼叫庫函式。include之後,與使用你自己定義的函式的方法一樣,直接用。f 不指定寬度,整數部分全部輸出並輸出6位小數。m.nf 輸出共佔m列,其中有n位小數,如數值寬度小於m左端補空格。m.nf 輸出共佔m列,其中有n位小數,如數值寬度小於m右端補空格。c語言中不用...