可以使用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 | 文本文件已打开以供阅读 |
重量 | 文本文件已打开以进行写入 |
在 | 文本文件已打开以进行追加 |
++ | 文本文件已打开以进行读写 |
w + t | 文本文件已打开,可用于写作和阅读 |
a + t | 文本文件已打开,可以追加和阅读 |
rb | 二进制文件已打开以供读取 |
b | 打开二进制文件进行写入 |
b | 二进制文件已打开以进行追加 |
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 ^ | 当前内容 | 新文件将被创建 |
一种 | 旧内容当前内容 | 新文件将被创建 |
以下是用于文件操作的C程序-
//用于将一个文件的内容复制到另一个文件的程序 #include <stdio.h> #include <stdlib.h> // 对于exit() int main(){ FILE *fptr1, *fptr2; char filename[100], c; printf("Enter the filename to open for reading \n"); scanf("%s",filename); // 打开一个文件进行读取 fptr1 = fopen(filename, "r"); if (fptr1 == NULL){ printf("Cannot open file %s \n", filename); exit(0); } printf("Enter the filename to open for writing \n"); scanf("%s", filename); // 打开另一个文件进行写入 fptr2 = fopen(filename, "w"); if (fptr2 == NULL){ printf("Cannot open file %s \n", filename); exit(0); } // 从文件中读取内容 c = fgetc(fptr1); while (c != EOF){ fputc(c, fptr2); c = fgetc(fptr1); } printf("\nContents 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