怎么用c语言删除文本中指定的一行,有哪些简便的操作? |
您所在的位置:网站首页 › c语言清除一个字符 › 怎么用c语言删除文本中指定的一行,有哪些简便的操作? |
帮你改好了 有**的是我加上去的注释 你的错误我都在注释里面说了 代码: #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 |