怎么用c语言删除文本中指定的一行,有哪些简便的操作?

您所在的位置:网站首页 c语言清除一个字符 怎么用c语言删除文本中指定的一行,有哪些简便的操作?

怎么用c语言删除文本中指定的一行,有哪些简便的操作?

2023-09-13 23:13| 来源: 网络整理| 查看: 265

帮你改好了

有**的是我加上去的注释

你的错误我都在注释里面说了

代码:

#include

#include

#include

void Dn(){

FILE *fp;

FILE *ft=fopen("temp.txt","w");//定义两个文件,其中一个文件名为“temp.txt”的文件用写的方式打开

int i=0,k=1,line;//i为文本的总行数,k为文本中的第几行,line为要删除的一行

char filename[20];

char txt1[50],txt2[50],txt3[50],txt4[50];//这些为文本某一行的内容

printf("请输入文件名:\n");

//在我电脑不需要这行,所以我注释掉 **

//getchar(); **

gets(filename);

if((fp=fopen(filename,"r"))==NULL)

{

printf("The file error!");

exit(0);

}

printf("该文件内容如下:\n");

//fgets(txt1,30,fp); **

while(!feof(fp))

{

//printf("%s",txt1); **

//

//fgets(txt1,30,fp); **

//下面这两行是我改的,把上面3个有 ** 的改成了这两行就正确读入了,你本来的代码会读少最后一行 **

fgets(txt1,30,fp);

printf("%s",txt1);

i++;

}

//因为除了最后一行,其他都带有换行,所以这里给个换行 **

printf("\n");

fclose(fp);

//读文本内容

printf("请输入所要删除的行数:\n");

scanf("%d",&line);

while(line>i)

{

printf("该行不存在!请重新输入:\n");

scanf("%d",&line);

}

printf("删除完成!\n");

printf("请输入文件名:\n");

getchar();

gets(filename);

printf("内容如下:\n");

if((fp=fopen(filename,"r"))==NULL)

{

printf("The file error!");

exit(0);

}

if(line!=i)//在删除的行不是最后一行的情况下题主逻辑是对的,但是除了最后一行其他行都带有换行,所以删最后一行会出错 **

while(k



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3