1.函式原型
file *fopen(char *pname,char *mode)
2.功能說明
按照mode 規定的方式,開啟由pname指定的檔案。若找不到由pname指定的相應檔案,就按以下方式之一處理:
(1) 此時如mode 規定按寫方式開啟檔案,就按由pname指定的名字建立乙個新檔案;
(2) 此時如mode 規定按讀方式開啟檔案,就會產生乙個錯誤。
開啟檔案的作用是:
(1)分配給開啟檔案乙個file 型別的檔案結構體變數,並將有關資訊填入檔案結構體變數;
(2)開闢乙個緩衝區;
(3)呼叫作業系統提供的開啟檔案或建立新檔案功能,開啟或建立指定檔案;
file *:指出fopen是乙個返回檔案型別的指標函式;
3.引數說明
pname:是乙個字元指標,它將指向要開啟或建立的檔案的檔名字串。
mode:是乙個指向檔案處理方式字串的字元指標,指出開啟的方式:
補充:
t:text文字檔案
b:二進位制檔案
各種模式可以組合:
rt,rt+,wt,rb,wb,at,ab。。。
//舉例說明:
file *fin, *fout;
fin = fopen("text1.txt", "r");
if (!fin)
printf("open file 1 failed! \n");
fout = fopen("text2.txt", "w");
if (!fopen)
printf("open file2 failed! \n");
4.返回值
正常返回:被開啟檔案的檔案指標。
異常返回:null,表示開啟操作不成功。
5,要說明的是:c語言將計算機的輸入輸出裝置都看作是檔案。例如,鍵盤檔案、螢幕檔案等。ansi c標準規定,在執行程式時系統先自動開啟鍵盤、螢幕、錯誤三個檔案。這三個檔案的檔案指標分別是:標準輸入stdin、標準輸出stdout和標準出錯 stderr。
要注意的是讀寫完成後一定要記得關閉檔案否則資料可能沒儲存
1. 函式原型
int fclose(file *fp);
2. 功能說明
關閉由fp指出的檔案。此時呼叫作業系統提供的檔案關閉功能,關閉由fp->fd指出的檔案;釋放由fp指出的檔案型別結構體變數;返回操作結果,即0或eof。
3. 引數說明
fp:乙個已開啟檔案的檔案指標。
4. 返回值
正常返回:0。
異常返回:eof,表示檔案在關閉時發生錯誤。
例如:
int n=fclose(fp);
//當然也不一定要檢測,可以直接寫出來:
fclose(fin);
fclose(fout);
a. 從檔案中讀取乙個字元
1. 函式原型
int fgetc(file *fp);
2. 功能說明
從fp所指檔案中讀取乙個字元。
3. 引數說明
fp:這是個檔案指標,它指出要從中讀取字元的檔案。
4. 返回值
正常返回: 返回讀取字元的**。
非正常返回:返回eof。例如,要從」寫開啟」檔案中讀取乙個字元時,會發生錯誤而返回乙個eof。
5. 例項
ch = fgetc(fin);
while (ch != eof)
b. 寫乙個字元到檔案中去
1. 函式原型
int fputc(int ch,file *fp)
2. 功能說明
把ch中的字元寫入由fp指出的檔案中去。
3. 引數說明
ch:是乙個整型變數,記憶體要寫到檔案中的字元(c語言中整型量和字元量可以通用)。
fp:這是個檔案指標,指出要在其中寫入字元的檔案。
4. 返回值
正常返回: 要寫入字元的**。
非正常返回:返回eof。例如,要往」讀開啟」檔案中寫乙個字元時,會發生錯誤而返回乙個eof。
5. 例項
//將in指向的檔案複製到out指向的檔案中去
ch=fgetc(in); //從in所指檔案的當前指標位置讀取乙個字元
while(ch!=eof) //判斷剛讀取的字元是否是檔案結束符
//完成將in所指檔案的內容寫入(複製)到out所指檔案中
fclose(in); //關閉in所指檔案
fclose(out); //關閉out所指檔案
字串:
c. 從檔案中讀取乙個字串
1. 函式原型
char *fgets(char *str,int szie,file *fp)
2. 功能說明
從由fp指出的檔案中讀取n-1個字元,並把它們存放到由str指出的字元陣列中去,最後加上乙個字串結束符』\0』。
3. 引數說明
str:接收字串的記憶體位址,可以是陣列名,也可以是指標。
n: 指出要讀取字元的個數。
fp:這是個檔案指標,指出要從中讀取字元的檔案。
4. 返回值
正常返回:返回字串的記憶體首位址,即str的值。
非正常返回:返回乙個null值,此時應當用feof()或ferror()函式來判別是讀取到了檔案尾,還是發生了錯誤。例如,要從」寫開啟」檔案中讀取字串,將
發生錯誤而返回乙個null值。
d. 寫乙個字串到檔案中去
1. 函式原型
int fputs(char *str,file *fp)
2. 功能說明
把由str指出的字串寫入到fp所指的檔案中去。
3. 引數說明
str:指出要寫到檔案中去的字串。
fp:這是個檔案指標,指出字串要寫入其中的檔案。
4. 返回值
正常返回: 寫入檔案的字元個數,即字串的長度。
非正常返回:返回乙個null值,此時應當用feof()或ferror()函式來判別是讀取到了檔案尾,還是發生了錯誤。例如,要往乙個」讀開啟」 檔案中寫字串時,會發生錯誤而返回乙個null值。
//example:將乙個檔案的內容以追加形式新增到另乙個檔案
#include
#define size 512
void main()
if ((fp2 = fopen("text.txt", "r")) == null)
// 讀入一行立即寫出,直到檔案結束
while (fgets(buffer, size, fp1) != null)
printf("%s\n", buffer);
while (fgets(buffer, size, fp2) != null)
fputs(buffer, fp1);
fclose(fp1);
fclose(fp2);
if ((fp1 = fopen("text1.txt", "r")) == null)
while (fgets(buffer, size, fp1) != null)
printf("%s\n", buffer);
fclose(fp1);
}
int feof(file *fp)
2. 功能說明
在文字檔案(ascii檔案)中可以用值為-1的符號常量eof來作為檔案的結束符。但是在二進位制檔案中-1往往可能是乙個有意義的資料,因此不能用它 來作為檔案的結束標誌。為了能有效判別檔案是否結束,ansi c提供了標準函式feof(),用來識別檔案是否結束。
3. 引數說明
fp:檔案指標。
4. 返回值
返回為非0值:已到檔案尾。
返回為0值:表示還未到檔案尾。
* 關於exit()函式
1. 函式原型
void exit(int status)
2. 功能說明
exit()函式使程式立即終止執行,同時將緩衝區中剩餘的資料輸出並關閉所有已經開啟的檔案。
3. 引數說明
status:為0值表示程式正常終止,為非0值表示乙個定義錯誤。
4. 返回值
無。
C 檔案操作與C 的檔案操作
c filestream 檔案流 主要用於使用二進位制方式讀寫檔案資料,可讀取任何檔案 建立filestream物件 e 建立filestream物件 filemode 指定系統開啟檔案的方式filestream fileaccess 指定檔案的訪問方式 read唯讀,write只寫,readwri...
C 檔案操作
c 追加檔案 sw.writeline 追逐理想 sw.writeline kzlll sw.writeline net筆記 sw.flush sw.close c 拷貝檔案 string orignfile,newfile file.copy orignfile,newfile,true c 刪除...
C 檔案操作
c 檔案操作 軒軒 發表於 2006 2 18 12 40 16 在c 中,有乙個stream這個類,所有的i o都以這個 流 類為基礎的,包括我們要認識的檔案i o,stream這個類有兩個重要的運算子 1 插入器 向流輸出資料。比如說系統有乙個預設的標準輸出流 cout 一般情況下就是指的顯示器...