c語言程式設計基礎之檔案操作

2021-08-30 10:29:30 字數 2781 閱讀 1717

檔案使用方式 意義

「rt」 唯讀開啟乙個文字檔案,只允許讀資料

「wt」 只寫開啟或建立乙個文字檔案,只允許寫資料

「at」 追加開啟乙個文字檔案,並在檔案末尾寫資料

「rb」 唯讀開啟乙個二進位制檔案,只允許讀資料

「wb」 只寫開啟或建立乙個二進位制檔案,只允許寫資料

「ab」 追加開啟乙個二進位制檔案,並在檔案末尾寫資料

「rt+」 讀寫開啟乙個文字檔案,允許讀和寫

「wt+」 讀寫開啟或建立乙個文字檔案,允許讀寫

「at+」 讀寫開啟乙個文字檔案,允許讀,或在檔案末追加資料

「rb+」 讀寫開啟乙個二進位制檔案,允許讀和寫

「wb+」 讀寫開啟或建立乙個二進位制檔案,允許讀和寫

「ab+」 讀寫開啟乙個二進位制檔案,允許讀,或在檔案末追加資料

對於檔案使用方式有以下幾點說明:

1)檔案使用方式由r,w,a,t,b,+六個字元拼成,各字元的含義是:

r(read): 讀

w(write): 寫

t(text): 文字檔案,可省略不寫

b(banary): 二進位制檔案

+: 讀和寫

2)凡用「r」開啟乙個檔案時,該檔案必須已經存在,且只能從該檔案讀出。

3)用「w」開啟的檔案只能向該檔案寫入。若開啟的檔案不存在,則以指定的檔名建立該檔案,若開啟的檔案已經存在,則將該檔案刪去,重建乙個新檔案。

4)若要向乙個已存在的檔案追加新的資訊,只能用「a」方式開啟檔案。但此時該檔案必須是存在的,否則將會出錯。

5)在開啟乙個檔案時,如果出錯,fopen將返回乙個空指標值null。在程式中可以用這一資訊來判別是否完成開啟檔案的工作,並作相應的處理。因此常用以下程式段開啟檔案:

6)if((fp=fopen("c:\\hzk16","rb")==null)

這段程式的意義是,如果返回的指標為空,表示不能開啟c盤根目錄下的hzk16檔案,則給出提示資訊「error on open c:\ hzk16 file!」,下一行getch()的功能是從鍵盤輸入乙個字元,但不在螢幕上顯示。在這裡,該行的作用是等待,只有當使用者從鍵盤敲任一鍵時,程式才繼續執行,因此使用者可利用這個等待時間閱讀出錯提示。敲鍵後執行exit(1)退出程式。

7)把乙個文字檔案讀入記憶體時,要將ascii碼轉換成二進位製碼,而把檔案以文字方式寫入磁碟時,也要把二進位製碼轉換成ascii碼,因此文字檔案的讀寫要花費較多的轉換時間。對二進位制檔案的讀寫不存在這種轉換。

8)標準輸入檔案(鍵盤),標準輸出檔案(顯示器),標準出錯輸出(出錯資訊)是由系統開啟的,可直接使用。

對檔案的讀和寫是最常用的檔案操作。在c語言中提供了多種檔案讀寫的函式:

•字元讀寫函式 :fgetc和fputc

•字串讀寫函式:fgets和fputs

•資料塊讀寫函式:freed和fwrite

•格式化讀寫函式:fscanf和fprinf

下面分別予以介紹。使用以上函式都要求包含標頭檔案stdio.h。

讀檔案操作

#include

//#include"conio.h"

main()

ch=fgetc(fp);

while(ch!=eof)

fclose(fp);

}

寫檔案操作

#include

main()

printf("input a string:");

ch=getchar();

while(ch!='\n')

rewind(fp); //把檔案內部位置指標移到檔案頭

ch=fgetc(fp);

printf("ch:%c",ch);

printf("you input is:");

while(ch!=eof)

printf("\n");

fclose(fp);

}

/*把命令列引數的前乙個檔名標識的檔案複製到後乙個,若只有乙個檔案則列印出來*/

#include

main(int argc,char *argv)

if((fp1=fopen(argv[1],"rt"))==null)

if(argc==2) fp2=stdout;

else if((fp2=fopen(argv[2],"wt++"))==null)

while((ch=fgetc(fp1))!=eof)

fputc(ch,fp2);

fclose(fp1);

fclose(fp2);

}

/*從檔案中讀入乙個含有十個字元的字串*/

#include

main()

fgets(str,11,fp);

printf("\n%s\n",str);

fclose(fp);

}

/*建立檔案追加字串*/

#include

main()

printf("input a string:");

scanf("%s",st);

fputs(st,fp);

rewind(fp);

ch=fgetc(fp);

while(ch!=eof)

printf("\n");

fclose(fp);

}

c語言程式設計基礎之檔案操作(二)

資料塊讀寫函式fread和fwtrite 語言還提供了用於整塊資料的讀寫函式。可用來讀寫一組資料,如乙個陣列元素,乙個結構變數的值等。讀資料塊函式呼叫的一般形式為 fread buffer,size,count,fp 寫資料塊函式呼叫的一般形式為 fwrite buffer,size,count,f...

C語言基礎之檔案

意義 解決多檔案編譯模組化的問題 格式 main 目標 main.0 依賴 乙個tab gcc main.o o main 命令 makefile檔名必須為makefile或者makefile,其餘檔名要使用make f 檔名命令告訴系統去哪找makefile檔案 gcc命令 gcc c 編譯到目標...

c基礎 之 檔案及其操作

首先要定義乙個檔案指標型別,格式為 file 檔案指標名 file fp fp就是定義的檔案指標 開啟檔案fopen 函式,格式 fp fopen 檔名 開啟方式 fp fopen c myfile r 開啟方式下文會講到 檔名中不允許直接使用路徑描述符 必須用轉義字元的形式 中第乙個 是轉義字元,...