1.file *fp= fopen("要點一","要點二")
這裡可以寫單獨的檔名,比如說「1.txt」,那麼他就會在當前c檔案的資料夾目錄下查詢檔案是否存在,存在則返回這個檔案的指標,不存在的話則返回null,
這裡也可以寫乙個檔案的絕對路徑,比如說「c:\aaa\ccc\a.txt」這樣的話他就會在整個電腦裡面找這個路徑是否存在該檔案,存在則返回檔案指標,不存在則返回null
這裡寫的是開啟檔案之後想要操作的型別,主要的型別有如下幾種:
「r」.為讀而開啟文字檔案.(不存在則出錯)
「w」.為寫而開啟文字檔案.(若不存在則新建,反之,則從檔案起始位置寫,原內容將被覆蓋)
「a」.為在檔案後面新增資料而開啟文字檔案.(若不存在,則新建;反之,在原檔案後追加)
「r+」.為讀和寫而開啟文字檔案.(讀時,從頭開始;在寫資料時,新資料只覆蓋所佔的空間,其後不變)
「wb」.為寫而開啟二進位制檔案.
「rb」.為讀而開啟二進位制檔案
「ab」.為在檔案後面新增資料而開啟乙個二進位制檔案.
「rb+」.為讀和寫而開啟二進位制檔案.只是在隨後的讀寫時,可以由位置函式設定讀和寫的起始位置.
「w+」.首先建立乙個新檔案,進行寫操作,隨後可以從頭開始讀.(若檔案存在,原內容將全部消失)
「a+」.功能與」a」相同;只是在檔案尾部新增新的資料後,可以從頭開始讀.
wb+」.功能與」w+」同.只是在隨後的讀寫時,可以由位置函式設定讀和寫的起始位置.
「ab+」.功能與」a+」相同;只是在檔案尾部新增新資料之後,可以由位置函式設定開始讀的起始位置.
將資料存入檔案(寫檔案)
幾種操作函式
fputc(file* fp,int c);//將一位元組資料寫入檔案,寫入成功返回c,失敗則返回-1
fputs(const char* a,file* fp);將字元陣列的指標或者動態申請的陣列頭指標指向的資料寫入檔案,寫入成功則返回這個陣列的頭指標
fprintf(file* fp,const char* c,….);比printf多了乙個檔案指標的形參,所以說這個函式不是講資料輸出到黑色控制台的,而是輸出到檔案中
file *fp = fopen("1.txt","w");
fputc('a',fp);//寫字元函式,寫成功則返回該字元,否則返回-1
char b[10] = "1111111";
fputs(b,fp);//放置乙個字元陣列在檔案中,其中,這個陣列的長度是必須清楚的,因為這在讀檔案的時候會用到
fprintf(fp,"%d",15);將15輸出到檔案
關閉檔案指標
fclose(fp);
讀取檔案中的資料,對應三個函式
fgetc(file* fp);//從檔案讀取一位元組資料以返回值的形式返回出來
fgets(const char* a,int n,file* fp);比寫資料多了乙個整數,這個整數代表你要讀取的字元個數,這個也是我之前說的你必須記住你往裡面寫入的字元陣列的字元個數
fscanf(file* fp,const char* c,….);比scanf()多了乙個檔案指標的形參,所以說這個函式不從黑色控制台讀取的,而是從檔案中讀取資料
file *fp = fopen("1.txt","r");
char a[10];
a[0] = getc(fp);//讀取一位元組資料
printf("%c\n",a[0]);
fgets(a,8,fp);//讀取八個字元
puts(a);
int c;
fscanf(fp,"%5d",&c);//讀取乙個5長度的空間,讀取這個空間上的整數
printf("%d\n",c);
注意事項:
- 讀取的順序一定與寫的時候的順序相同
C語言檔案操作常用函式
1.fopen函式用來開啟乙個檔案 對磁碟檔案的操作必須 先開啟,後讀寫,再關閉 開啟 檔案的含義 以某種方式從磁碟上查詢指定的檔案或建立乙個新檔案。標頭檔案 include 函式原型 file fopen const char path,const char mode 函式形參 path 包含欲開...
關於c語言檔案的各種操作的函式
int main 開啟檔案的標準套路if fp2 fopen users xiebaba downloads hello2.rtf r null the same while feof fp2 if fclose fp1 if fclose fp2 include include intmain i...
關於C語言檔案的操作
關於c語言的檔案操作之前我也寫過一篇部落格來介紹,但是當時寫的很不全面,只是簡單的使用了一下 今天再從新學習一下。1 檔案的寫 首先還是先看乙個簡單的例子 includeint main printf input a string n while ch getchar n fclose fp ret...