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