C语言怎么修改txt文件中的一行数据

#include <stdio.h>
#include <string.h>
char buf[100][100];
int main()
{
FILE *fp;
char s1[100];//要插入的数据
int i=0;
int n=0;
int m;
scanf("%d",&m);
fp = fopen("D:\\社会火车表.txt", "r");
while((fgets(buf[n],52,fp))!=NULL)
n++;
fclose(fp);
gets (s1);
fputs (s1,fp);
for(i = m-1; i<n; i ++)
strcpy(buf[i],buf[i+1]);
strcpy(buf[m-1], s1);
fp=fopen("D:\\社会火车表.txt", "w");
for(i=0;i<n;i++)
fputs(buf[i],fp);
fclose(fp);//关闭文件。
return 0;
}

关于这个问题,本人也没有什么好的方法。
提个建议:首先将后100个字符读入数组,内存访问肯定比文件访问要快
就是这块:
do
{
fscanf(fp,"%c",&mm); //逐行扫描
}
while(mm!='\n'); //判断倒数第二行的换行符

另外若想改进,个人感觉文件的磁盘访问本身就很慢,可以考虑在文件不大时直接用一些内存操作追问

我在做火车票售卖程序,这是个修改车次的功能模块,卡在这里了,很苦恼啊

温馨提示:答案为网友推荐,仅供参考
相似回答