本文目錄一覽:
C語言fopen函數和其參數
fopen()是一個文件I/O 裡面的函數 功能是打開一個文件。
其原型是 FILE *fopen(char *filename,char *mode)
返回值 :正常打開 返回指向文件結構體的指針。
失敗,返回NULL;
要用這個函數是首先要定義一個 文件指針,例
FILE *fp=NULL;
fp=fopen(“./txt”,”r”); 就是以只讀的方式打開當前目錄txt這個文件
第一個參數是要打開的文件名
第二個參數是:打開模式 r 只讀 , r+ 讀寫, w只寫 ,w+讀寫, a追加, a+
c語言fopen怎麼用
fopen一般與buf搭配使用,通過與fgets函數配合使用,將文件中的字符串讀到buf中,這樣達到讀出文件內容的目的代碼如下:
FILE tf=NULL;//定義一個文件指着,用於判斷fopen是否打開成功,並初始化為空;
char buf[1024]={0};//定義一個長度為1024的數組,用於存放文件的內容;
tf=fopen(“c:\example.txt”,”r”);//打開c盤指定文件,並以只讀的形式打開,避免破壞原文件,將fopen的返回值放在指針tf中,若打開成功,則返回成功的指針,打開不成功則返回空;
if(tf != NULL)//判斷是否成功,不等於NULL則表示成功;
{
if(fgets(buf,1024,tf) != NULL)//將指向c盤文件的指針的內容賦給buf,長度為1024,並判斷是否獲取成功;
{
printf(“buf=%s\n”,buf);//將成功獲取的字符串顯示在屏幕上;
}
}
fclose(tf);//將已打開的文件關閉;
擴展資料:
fopen的工作原理
FILE *fp;
fp=fopen(“filename.txt”,”w”);
首先檢測filename.txt是否存在,如果不存在則在磁盤 創建該文件,然後在內存開闢區域(應該是緩衝區)準備寫該文件
調用fclose時,將內存中的內容寫入到磁盤中去
測試(filename.txt不存在):
#include stdio.h
#include stdlib.h
int main()
{
FILE *fp1,*fp2;
fp1=fopen(“filename.txt”,”w”);
if(fp1==NULL)
{
printf(“fp1 open failed!/n”);
}
else
{
printf(“fp1 open success!/n”);
}
fp2=fopen(“filename.txt”,”r”);
if(fp2==NULL)
{
printf(“fp2 open failed!/n”);
}
else
{
printf(“fp2 open success!/n”);
}
fclose(fp1);
fclose(fp2);
return 0;
}
輸出:
fp1 open success!
fp2 open success!
說明文件操作不是互斥的,而且以寫方式打開文件,如果文件不存在,先在磁盤創建該文件
加入寫入語句:
#include stdio.h
#include stdlib.h
int main()
{
FILE *fp1,*fp2;
fp1=fopen(“filename.txt”,”w”);
if(fp1==NULL)
{
printf(“fp1 open failed!/n”);
}
else
{
printf(“fp1 open success!/n”);
fputs(“abcdef”,fp1);
}
fp2=fopen(“filename.txt”,”w”);
if(fp2==NULL)
{
printf(“fp2 open failed!/n”);
}
else
{
printf(“fp2 open success!/n”);
fputs(“ABC/n”,fp2);
}
fclose(fp1);
fclose(fp2);
return 0;
}
打開filename.txt文件:
ABC
f
說明後關閉的,刷新了磁盤數據
參考資料來源:fopen-百度百科
C語言fopen函數中文件打開方式(參數值)
C語言fopen函數用於打開文件。
函數原型:FILE
*
fopen(const
char
*
path,const
char
*
mode);
參數:
path
字符串類型,表示文件所在的路徑,包括文件名
mode
打開文件的模式、
返回值:文件順利打開後,指向該流的文件指針就會被返回。如果文件打開失敗則返回NULL,並把錯誤代碼存在errno
中。
mode:
r
以只讀方式打開文件,該文件必須存在。
r+
以可讀寫方式打開文件,該文件必須存在。
rb+
讀寫打開一個二進制文件,允許讀寫數據,文件必須存在。
w
打開只寫文件,若文件存在則文件長度清為0,即該文件內容會消失。若文件不存在則建立該文件。
w+
打開可讀寫文件,若文件存在則文件長度清為零,即該文件內容會消失。若文件不存在則建立該文件。
a
以附加的方式打開只寫文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾,即文件原先的內容會被保留。(EOF符保留)
a+
以附加方式打開可讀寫的文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾後,即文件原先的內容會被保留。
(原來的EOF符不保留)
wb
只寫打開或新建一個二進制文件;只允許寫數據。
wb+
讀寫打開或建立一個二進制文件,允許讀和寫。
ab+
讀寫打開一個二進制文件,允許讀或在文件末追加數據。
實例:
#includestdio.h
#define
F_PATH
“d:\\myfile\\file.dat”
int
main(void)
{
FILE*fp=NULL;//需要注意
fp=fopen(F_PATH,”r”);
if(NULL==fp)
{
return
-1;//要返回錯誤代碼
}
fclose(fp);
fp=NULL;//需要指向空,否則會指向原打開文件地址
return
0;
}
原創文章,作者:VWPL,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/137111.html