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;
} 展开
#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;
} 展开
1个回答
2018-05-29 · 知道合伙人互联网行家
关注
展开全部
关于这个问题,本人也没有什么好的方法。
提个建议:首先将后100个字符读入数组,内存访问肯定比文件访问要快
就是这块:
do
{
fscanf(fp,"%c",&mm); //逐行扫描
}
while(mm!='\n'); //判断倒数第二行的换行符
另外若想改进,个人感觉文件的磁盘访问本身就很慢,可以考虑在文件不大时直接用一些内存操作
提个建议:首先将后100个字符读入数组,内存访问肯定比文件访问要快
就是这块:
do
{
fscanf(fp,"%c",&mm); //逐行扫描
}
while(mm!='\n'); //判断倒数第二行的换行符
另外若想改进,个人感觉文件的磁盘访问本身就很慢,可以考虑在文件不大时直接用一些内存操作
追问
我在做火车票售卖程序,这是个修改车次的功能模块,卡在这里了,很苦恼啊
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询