C语言文件输入和输出操作的学习心得(四)

概述

C语言文件输入和输出操作的学习心得(一)
C语言文件输入和输出操作的学习心得(二)
C语言文件输入和输出操作的学习心得(三)
在以上三篇文章中介绍了C语言文件输入和输出的一些基本操作,相信大家阅读以后会对C语言文件操作的知识有一定的了解。本文将通过一个实例向大家演示如何运用前面三篇文章讨论过的函数。该实例的目的为通过C语言对一个文本进行复制,并新建一个文本用来存放复制的字符。事不宜迟,我们立即上码。

实例
#include <stdio.h>

int copyF(FILE *file);//定义复制文件的函数

int main()
{
  FILE *pFile;//定义文件指针
  int i;
  pFile = fopen("test.txt", "r");//打开文件
  i = copyF(pFile);//文件进行复制,返回一个整形数字
  if(i==0)//返回值为0表示文件复制成功
  {
      printf("mission completed...\n");
  }else if(i==1){//返回值为1表示文件复制失败,原文件出错
      printf("mission failed...file is NULL\n");
  }else if(i==2){//返回值为2表示文件复制失败,新文件出错
      printf("mission failed...copyfile is NULL\n");
  }
  fclose(pFile);//关闭文件
  return 0;
}

int copyF(FILE *file)
{
    char c[32];//定义一个用来储存字符的数组
    FILE *copyFile;//定义文件指针
    copyFile = fopen("copy.txt","w+");//打开文件

    if(file == NULL)//文件指针为空时的措施
    {
       printf("can not open the file");
       fclose(file);
       return 1;//错误返回1
    }

    if(copyFile == NULL)//文件指针为空时的措施
    {
       printf("can not open the file");
       fclose(copyFile);
       return 2;//错误返回2
    }
    while(!feof(file))
    {
        fgets(c,32,file);//获取原文件的32个字符
        fputs(c,copyFile);//将源文件的32个字符写进新文件
    }

    fclose(copyFile);//关闭文件
    return 0;
}
说明

复制文件的基本思路为:首先读出原文件数据,然后将读出的数据写进新的文本中。实例中定义了一个copyF()函数实现复制功能。该函数有一个参数*file,即需要复制文件的指针变量。并返回一个整形数值,返回值分别是0、1、2,具有不同的信息。

在main()函数中调用copyF()函数

  int i;
  pFile = fopen("test.txt", "r");//打开文件
  i = copyF(pFile);//文件进行复制,返回一个整形数字
copyF()

原型:int i = copyF(FILE *file)

int copyF(FILE *file)
{
    char c[32];//定义一个用来储存字符的数组
    FILE *copyFile;//定义文件指针
    copyFile = fopen("copy.txt","w+");//打开文件

    if(file == NULL)//文件指针为空时的措施
    {
       printf("can not open the file");
       fclose(file);
       return 1;//错误返回1
    }

    if(copyFile == NULL)//文件指针为空时的措施
    {
       printf("can not open the file");
       fclose(copyFile);
       return 2;//错误返回2
    }
    while(!feof(file))
    {
        fgets(c,32,file);//获取原文件的32个字符
        fputs(c,copyFile);//将源文件的32个字符写进新文件
    }

    fclose(copyFile);//关闭文件
    return 0;
}

实现文件复制的实例还有很多,本文提供其中一个实例作为参考。如有其他实例,欢迎各位朋友前来交流。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容