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...