C語言檔案讀取

2021-10-02 08:18:37 字數 1765 閱讀 2041

若沒有該檔案,系統會自動建立該檔案。

fp是檔案指標,char 型別。

file是結構體,file*是結構體指標,typedef定義的file.

開啟檔案操作時,就已經開啟了三個檔案。stdin,stdout,stderr

file *fopen(const char *path,const char *mode)

兩個引數:第乙個為路徑(相對路徑,絕對路徑),傳參char *即為字串 

第二個mode型別(檔案讀取許可權):

六種許可權

r:讀,開啟檔案,讀寫指標位置,在檔案開頭

w:寫,開啟檔案,如果檔案不存在,建立檔案,若檔案存在,截斷原檔案,讀寫指標在檔案開頭。

a:追加寫開啟檔案,如果檔案不存在,建立檔案。如果存在,在檔案末尾繼續寫檔案。

r+:可讀可寫開啟檔案,如果檔案不存在,也不建立。存在也不截斷。

w+:可讀可寫開啟檔案,如果檔案不存在,則建立檔案。如果存在,則截斷。

a+:可讀可寫追加開啟檔案。如果檔案不存在,則建立。

除了w,w+,其他都為追加。並不清空。

截斷定義的**演示:

#include

int main(int argc,char *ar**)

【除了w,w+會產生截斷,其他都不會。】

w,且檔案存在。就進行截斷,截斷之後,檔案內容清空。

從檔案中按行讀取資料

#include

int main(void )

fgets(buf,1024,fp);

printf("%s",buf);

//第二種寫法:    printf("%s",fgets(buf,sizeof(buf),fp));

//因為fgets返回的是

fclose(fp);

return 0;

}fgets函式功能為從指定的流中讀取資料,每次讀取一行。其原型為:char *fgets(char *str, int n, file *stream);從指定的流 stream 讀取一行,並把它儲存在 str 所指向的字串內。當讀取 (n-1) 個字元時,或者讀取到換行符時,或者到達檔案末尾時,它會停止,具體視情況而定。 

簡而言之,從stream所指的檔案裡讀取資料,存入str中,每次存入的最大值為n-1(因為包含/0,這個位元組)

讀取整個檔案:

#include

int main(void )

while(fgets(buf,1024,fp)!=null)

printf("%s",buf);

fclose(fp);

return 0;

}檔案的拷貝:

#include

//cp src dest

int main(int argc,char *ar**)

將src檔案拷貝至dest檔案。

while(fgets(buf,sizeof(buf),src)!=null)

fputs(buf,dest);

fclose(src);

fclose(dest);

return 0;

}

C語言逐行讀取檔案

c語言可以說是我學習的第一門語言,不過似乎也是忘的最多的一門語言,自從因為專案需要重新拾起c語言,我的噩夢就開始了。依稀記得大二學習資料結構時程式設計解決 約瑟夫環 迷宮 等問題後的驕傲,認為c簡直就是天神一般的語言,如此強大,如此讓人著迷。後來學了c 後來開始搞.net,後來自學了css和簡要的p...

c語言讀取bmp檔案

一 了解bmp檔案的格式 位 件頭 位圖資訊段 調色盤資訊 一般都沒有 位圖資料,各部分關鍵字段。詳細資訊參見 讀取bmp檔案的函式所需要的標頭檔案 include include include include include bmpstru.h define malloc type,n type...

C語言檔案讀取例項

開啟檔案 fopen 檔名,使用檔案方式 關閉檔案 fclose fp 檔案讀取 fgetc fp fgets str,n,fp fscanf fp,格式,輸入列表 fread 儲存區指標,單元大小,個數,檔案指標 檔案寫入 fputc ch,fp fputs str,fp fprintf fp,格...