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

#include<stdio.h>#include<string.h>charbuf[100][100];intmain(){FILE*fp;chars1[100];//... #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;
}
展开
 我来答
DoramiHe
2018-05-29 · 知道合伙人互联网行家
DoramiHe
知道合伙人互联网行家
采纳数:25334 获赞数:59537
2011年中山职业技术学院毕业,现担任毅衣公司京东小二

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

另外若想改进,个人感觉文件的磁盘访问本身就很慢,可以考虑在文件不大时直接用一些内存操作
追问
我在做火车票售卖程序,这是个修改车次的功能模块,卡在这里了,很苦恼啊
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式