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
广告