一、函數定義
FILE * fopen ( const char * filename, const char * mode );
二、參數mode:
表中指定的模式都是以文本的方式打開文件,如果要以二進制形式打開,需要在模式中加上“b”,既可以在模式字符串的末尾(如"rb+"),也可以在兩個字符中間(如"r+b")。
“rt” 只讀打開一個文本文件,只允許讀數據
“wt” 只寫打開或建立一個文本文件,只允許寫數據
“at” 追加打開一個文本文件,並在文件末尾寫數據
“rb” 只讀打開一個二進制文件,只允許讀數據
“wb” 只寫打開或建立一個二進制文件,只允許寫數據
“ab” 追加打開一個二進制文件,並在文件末尾寫數據
“rt+” 讀寫打開一個文本文件,允許讀和寫
“wt+” 讀寫打開或建立一個文本文件,允許讀寫
“at+” 讀寫打開一個文本文件,允許讀,或在文件末追加數據
“rb+” 讀寫打開一個二進制文件,允許讀和寫
“wb+” 讀寫打開或建立一個二進制文件,允許讀和寫
“ab+” 讀寫打開一個二進制文件,允許讀,或在文件末追加數據
三、返回值
如果文件成功打開,返回指向FILE對象的指針,否則返回NULL;
四、代碼
#include <cstdio>
using namespace std;
int main()
{
FILE *pFile;
pFile=fopen("myfile.txt","w");
if(pFile!=NULL)
{
fputs("it's a fopen example",pFile);
fclose(pFile);
}
return 0;
}
對於文件使用方式有以下幾點說明:
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。在程序中可以用這一信息來判別
是否完成打開文件的工作,並作相應的處理。
如果成功的打開一個文件, fopen()函數返回文件指針, 否則返回空指針
(NULL)。由此可判斷文件打開是否成功。