文件读入编辑写出程序

要求用C语言读入一段己知文件,对文件作删除某部分,修改某部分,增补某部分,换行导操作后,写回。( 要写一段程序

参考C语言文件操作
https://blog.csdn.net/RONG_YAO/article/details/106799878

1.将文件读入内存,即用数组存入文件内容
2.将不需要变动的部分(一般为变动点前后两部分)用两个数组保存起来,再根据需求拼接
3.将原文件删除,重建同名文件存放新内容;或以“w”只写模式写入原文件,会自动覆盖原文件内容
学习文件操作可以参考这里:http://c.biancheng.net/c/110/

C语言文件操作详讲
https://blog.csdn.net/weixin_56252440/article/details/124172210

代码参考如下

#include <stdio.h>
#include <stdlib.h>
#define D 58//days' amount
#define N 96 //number of day's data
void Writetofile(double result[])
{
    FILE *fp;
    int i;
    if((fp=fopen("result.txt","w"))==NULL)
    {
        printf("Wrong write.");
        exit(0);
    }
    for(i=0; i<N; i++)
    {
        fprintf(fp,"%lf\n",result[i]);
    }
    fclose(fp);
 
}
void Readfromfile(double flow[][N])
{
    FILE *fp;
    int i,j;
    if((fp=fopen("data.txt","r"))==NULL)
    {
        printf("Wrong read.");
        exit(0);
    }
    for(i=0; i<D; i++)
    {
        for(j=0; j<N; j++)
        {
            fscanf(fp,"%lf",&flow[i][j]);
        }
    }
    fclose(fp);
}
int main()
{
    int i,j;
    double flow[D][N],result[N]= {0};
    Readfromfile(flow);
    for(i=0; i<N; i++)
    {
        for(j=0; j<D; j++)
        {
            result[i]=result[i]+flow[j][i];
        }
        result[i]=result[i]/D;
    }
    Writetofile(result);
    printf("Success.");
    return 0;
}

参考原文:https://blog.csdn.net/weixin_42194402/article/details/81413363

#include "stdio.h"
#include "stdlib.h" // exit(0) 定义在此文件中
 
/*
   文本中的数据输入输出,可以是以字符位单位,也可以是字符串位单位。
   字符位为单位的输入/输出函数:fgetc()和fputc()函数
   文件输入函数
   fgetc()使用  
      char ch;   // 字符变量
      FILE *fp;  // 文件指针 
      ch=fgetc(fp); 
      作用:该函数从文件所指定的文件中读取一个字符,并把该字符的ASCII值赋给变量ch,执行本函数时,如果是读到文件末尾,则函数
      返回文件的结束标志EOF。
      注意:文件的输入是指从一个已经打开的文件中读出数据,并将其保存到内存变量中,这里的“输入”是相对内存变量而言的。
     EOF
     EOF字符常量是文本文件的结束标志,是不可输出字符
     在stdio.h中定义为-1,当从文件中读入的字符值等于-1时,表示读入的已不是正常的字符,而是文本文件的结束字符
     while(ch!=-1) 等价与  while(ch!=EOF)
     判断一个文件结束也可用feof()函数检测
   文件输出函数fputc()
      fputc(字符,文件指针)
      字符:可以是一个普通字符常量,也可以是一个变量名
      文件指针:指向一个已经打开的文件。
   作用:把“字符”的ASCLL值写入文件指针所指向的文件。若写入成功,则返回字符的ASCLL,否则返回文本文件结束标志EOF
   注意:文件输出的是将内存变量中的数据写到文件中,这里的“输出”也是相对内存变量而言的
*/
void main()                               // 程序入口
{
    FILE *fp1,*fp2;                      // 定义两个文件指针变量
    char c;
    if((fp1=fopen("file1.txt","w"))==0) // 只读方式新建file.txt文件,并测试是否成功
    {
         printf("不能打开文件\n");
         exit(0);                       // 强制退出程序
    }
    printf("输入字符:\n");
         while((c=getchar())!='\n')    // 接收一个从键盘输入的字符变量c,输入回车符则循环结束
         
             fputc(c,fp1);             // 把变量c写到fp1指向的file1.txt文件中
             fclose(fp1);              // 写入文件结束,关闭文件,使指针fp1和文件脱离关系
             if((fp2=fopen("file1.txt","r"))==0)
             {
                 printf("不能打开文件\n");
                 exit(0);              // 强制退出程序
             }
                 printf("输出字符:\n");  
                 while((c=fgetc(fp2))!=EOF)  // 从文件file1.txt的开头处读字符存到变量c中
                 putchar(c);                 // 把变量c的值输出到屏幕上
                 printf("\n");               // 换行
                 fclose(fp2);                // 关闭文件
 
         
}

C语言有专门操作文件的函数和类