用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文本文件已打开以供阅读
重量文本文件已打开以进行写入
文本文件已打开以进行追加
++文本文件已打开以进行读写
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");

如果该文件不存在,则将创建一个新文件。

如果文件存在,则当前内容将添加到旧内容中。

模式出口不退出
[Rfp =“ 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

以上是 用C语言对文件进行哪些不同的操作? 的全部内容, 来源链接: utcz.com/z/340061.html

回到顶部