C語言檔案操作中fgets函式的使用

2021-03-03 21:41:44 字數 2926 閱讀 7821

1樓:匿名使用者

#include

#include

// #pragma warning(disable:4996)const int maxlen = 1000;

int main() ;

// memset(s, 0, sizeof(s)); // s要被多次使用的

file *p = fopen("e:\\輸入資訊du得文字.txt", "w");

if(p == null)

while (1)

fclose(p);

printf("end\n");

return 0;}

c語言中的fgets函式。

2樓:暗影之王

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()使用不當造成快取溢位的問題。

3樓:匿名使用者

哦 這裡是特殊情況。

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

4樓:讓清茅笑寒

fgets函式原型如下:

char

*fgets(char

*s,int

n,file

*stream);

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

5樓:匿名使用者

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

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

6樓:匿名使用者

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

答,n,檔案指標);

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

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

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

c語言 關於fgets函式 10

7樓:匿名使用者

可能會溢位。

記憶體中給ch分配一個位元組的空間,而你這裡是讀取n+1個位元組,只要n>0就會出現溢位。

8樓:

當然有可能復溢位,一般來制說不會宣告一個字元變數,然後把讀取的一段資料往一個字元變數所在的地址放(那字元變數後面的記憶體不是都被蓋了?),正確的用法是malloc一段大小的記憶體,一次讀取的大小不超過這段記憶體的大小,這樣才安全。

c語言裡fgets函式怎麼用?

9樓:匿名使用者

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函式的問題 20

10樓:匿名使用者

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()使用不當造成快取溢位的問題。

c語言,函式,函式,c語言,函式,函式模板

那是c 自帶的模板庫,c的很少,而且 長難記且功能少,基本可以忽略。要是用c的話,函式基本要自己寫的 在c語言中如何實現函式模板 各種用 c 語言實現的模板可能在使用形式上有所不同。現以一個求和函式 sum 為例,用 c template 可寫如下 template r sum const t ar...

c語言fwrite函式中引數buffer為什麼要用

用陣列名錶示第一個陣列元素的地址,也即陣列的起始地址,對於其他陣列元素,還是需要取地址符的 fwrite函式具體是什麼意思怎麼用各個引數是什麼意思 size t fwrite const void buffer,size t size,size t count,file stream 這是fwrit...

C 中round函式怎麼用,c語言中round函式哪個標頭檔案

double round double val c語言中round函式的作用 四捨五入到最鄰近的整數。c語言中round函式的作用 四捨五入到最鄰近的整數。c 中沒有直接的round函式,需要自己建立 double round double val c99才有,取決於編譯器是否支援c99.c語言中r...