C語言中檔案操作有哪些?
在C語言中,可以對檔案執行以下操作:
- 命名檔案。
- 開啟檔案。
- 從檔案讀取。
- 寫入檔案。
- 關閉檔案。
語法
**開啟和命名檔案**的語法如下:
FILE *File pointer;
例如,FILE * fptr;
File pointer = fopen ("File name”, "mode”);
例如,fptr = fopen ("sample.txt”, "r”)
FILE *fp; fp = fopen ("sample.txt”, "w”);
開啟檔案的模式
下面解釋了C語言中開啟檔案的模式:
模式 | 描述 |
---|---|
r | 以只讀方式開啟檔案 |
w | 以寫入方式開啟檔案 |
a+ | 以追加方式開啟檔案 |
r+ | 以讀寫方式開啟檔案 |
w+ | 以寫讀方式開啟檔案 |
a+ | 以追加讀方式開啟檔案 |
rt | 以文字方式開啟檔案進行讀取 |
wt | 以文字方式開啟檔案進行寫入 |
at | 以文字方式開啟檔案進行追加 |
r+t | 以文字方式開啟檔案進行讀寫 |
w+t | 以文字方式開啟檔案進行寫讀 |
a+t | 以文字方式開啟檔案進行追加讀 |
rb | 以二進位制方式開啟檔案進行讀取 |
wb | 以二進位制方式開啟檔案進行寫入 |
ab | 以二進位制方式開啟檔案進行追加 |
r+b | 以二進位制方式開啟檔案進行讀寫 |
w+b | 以二進位制方式開啟檔案進行寫讀 |
a+b | 以二進位制方式開啟檔案進行追加讀。 |
- 以寫入模式開啟檔案
語法如下:
FILE *fp; fp =fopen ("sample.txt”, "w”);
如果檔案不存在,則建立一個新檔案。
如果檔案存在,則舊內容將被擦除,並存儲當前內容。
- 以讀取模式開啟檔案
語法如下:
FILE *fp fp =fopen ("sample.txt”, "r”);
如果檔案不存在,則fopen函式返回NULL值。
如果檔案存在,則成功從檔案讀取資料
- 以追加模式開啟檔案
語法如下:
FILE *fp; fp =fopen ("sample.txt", "a");
如果檔案不存在,則將建立一個新檔案。
如果檔案存在,則當前內容將新增到舊內容中。
模式 | 退出 | 未退出 |
---|---|---|
R | 讀取 | fp="NULL" |
W | 當前內容 | 將建立一個新檔案 |
A | 舊內容當前內容 | 將建立一個新檔案 |
示例
以下是用於檔案操作的C程式:
//Program for copying the contents of one file into another file #include <stdio.h> #include <stdlib.h> // For exit() int main(){ FILE *fptr1, *fptr2; char filename[100], c; printf("Enter the filename to open for reading
"); scanf("%s",filename); // Open one file for reading fptr1 = fopen(filename, "r"); if (fptr1 == NULL){ printf("Cannot open file %s
", filename); exit(0); } printf("Enter the filename to open for writing
"); scanf("%s", filename); // Open another file for writing fptr2 = fopen(filename, "w"); if (fptr2 == NULL){ printf("Cannot open file %s
", filename); exit(0); } // Read contents from file c = fgetc(fptr1); while (c != EOF){ fputc(c, fptr2); c = fgetc(fptr1); } printf("
Contents copied to %s", filename); fclose(fptr1); fclose(fptr2); return 0; }
輸出
執行上述程式時,將產生以下結果:
Enter the filename to open for reading file2.txt Enter the filename to open for writing file1.txt Contents copied to file1.txt
廣告