當前位置:編程學習大全網 - 編程語言 - c語言程序設計文件打開關閉

c語言程序設計文件打開關閉

在C語言中用壹個指針變量指向壹個文件,這個指針稱為文件指針。通過文件指針就可對它所指的文件進行各種操作。

定義說明文件指針的壹般形式為:

FILE *指針變量標識符;

其中FILE應為大寫,它實際上是由系統定義的壹個結構,該結構中含有文件名、文件狀態和文件當前位置等信息。在編寫源程序時不必關心FILE結構的細節。例如:

FILE *fp;

表示fp是指向FILE結構的指針變量,通過fp即可找存放某個文件信息的結構變量,然後按結構變量提供的信息找到該文件,實施對文件的操作。習慣上也籠統地把fp稱為指向壹個文件的指針。

文件在進行讀寫操作之前要先打開,使用完畢要關閉。所謂打開文件,實際上是建立文件的各種有關信息,並使文件指針指向該文件,以便進行其它操作。關閉文件則斷開指針與文件之間的聯系,也就禁止再對該文件進行操作。

在C語言中,文件操作都是由庫函數來完成的。在本章內將介紹主要的文件操作函數。

文件的打開(fopen函數)

fopen函數用來打開壹個文件,其調用的壹般形式為:

文件指針名 = fopen( 文件名, 使用文件方式 );

其中:

“文件指針名”必須是被說明為FILE 類型的指針變量;

“文件名”是被打開文件的文件名;

“使用文件方式”是指文件的類型和操作要求;

“文件名”是字符串常量或字符串數組。

例如:

FILE *fp;

fp=("file a","r");

其意義是在當前目錄下打開文件file a,只允許進行“讀”操作,並使fp指向該文件。又如:

FILE *fphzk;

fphzk=("c:\\hzk16","rb");

其意義是打開C驅動器磁盤的根目錄下的文件hzk16,這是壹個二進制文件,只允許按二進制方式進行讀操作。兩個反斜線“\\ ”中的第壹個表示轉義字符,第二個表示根目錄。

使用文件的方式***有12種,下面給出了它們的符號和意義。

文件使用方式

意義

rt 只讀打開壹個文本文件,只允許讀數據

wt 只寫打開或建立壹個文本文件,只允許寫數據

at 追加打開壹個文本文件,並在文件末尾寫數據

rb 只讀打開壹個二進制文件,只允許讀數據

wb 只寫打開或建立壹個二進制文件,只允許寫數據

ab 追加打開壹個二進制文件,並在文件末尾寫數據

rt+ 讀寫打開壹個文本文件,允許讀和寫

wt+ 讀寫打開或建立壹個文本文件,允許讀寫

at+ 讀寫打開壹個文本文件,允許讀,或在文件末追加數據

rb+ 讀寫打開壹個二進制文件,允許讀和寫

wb+ 讀寫打開或建立壹個二進制文件,允許讀和寫

ab+ 讀寫打開壹個二進制文件,允許讀,或在文件末追加數據

對於文件使用方式有以下幾點說明。

1) 文件使用方式由r、w、a、t、b 和 + 六個字符拼成,各字符的含義是:

r(read):讀

w(write):寫

a(append):追加

t(text):文本文件,可省略不寫

b(banary):二進制文件

+:讀和寫

2) 凡用“r”打開壹個文件時,該文件必須已經存在,且只能從該文件讀出。

3) 用“w”打開的文件只能向該文件寫入。若打開的文件不存在,則以指定的文件名建立該文件,若打開的文件已經存在,則將該文件刪去,重建壹個新文件。

4) 若要向壹個已存在的文件追加新的信息,只能用“a”方式打開文件。但此時該文件必須是存在的,否則將會出錯。

5) 在打開壹個文件時,如果出錯,fopen將返回壹個空指針值NULL。在程序中可以用這壹信息來判別是否完成打開文件的工作,並作相應的處理。因此常用以下程序段打開文件:

if((fp=fopen("c:\\hzk16","rb")==NULL){

printf("\nerror on open c:\\hzk16 file!");

getch();

exit(1);

}

這段程序的意義是,如果返回的指針為空,表示不能打開C盤根目錄下的hzk16文件,則給出提示信息“error on open c:\ hzk16 file!”,下壹行getch()的功能是從鍵盤輸入壹個字符,但不在屏幕上顯示。在這裏,該行的作用是等待,只有當用戶從鍵盤敲任壹鍵時,程序才繼續執行,因此用戶可利用這個等待時間閱讀出錯提示。敲鍵後執行exit(1)退出程序。

6) 把壹個文本文件讀入內存時,要將ASCII碼轉換成二進制碼,而把文件以文本方式寫入磁盤時,也要把二進制碼轉換成ASCII碼,因此文本文件的讀寫要花費較多的轉換時間。對二進制文件的讀寫不存在這種轉換。

7) 標準輸入文件(鍵盤),標準輸出文件(顯示器),標準出錯輸出(出錯信息)是由系統打開的,可直接使用。

文件關閉函數(fclose函數)

文件壹旦使用完畢,應用關閉文件函數把文件關閉,以避免文件的數據丟失等錯誤。

fclose函數調用的壹般形式是:

fclose(文件指針);

例如:

fclose(fp);

正常完成關閉文件操作時,fclose函數返回值為0。如返回非零值則表示有錯誤發生。

  • 上一篇:無人機應該怎麽樣連接手機,遙控器怎麽配對?
  • 下一篇:貓的故事
  • copyright 2024編程學習大全網