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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP