要求用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语言有专门操作文件的函数和类