gpt4 book ai didi

C 从文件中删除一行不起作用

转载 作者:行者123 更新时间:2023-11-30 18:55:59 25 4
gpt4 key购买 nike

我的 C 程序有问题。我想从文件中删除选定的行。对于两个文件,删除工作正常,但删除程序后不会更改文件名,也不会删除“旧”文件。

文件结构

"new","new","new","1001" 
"asd","as","das","asd"
"sdasda","asasd","dsaa","sdsda"

代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>

#define DB "db.txt"

int main()
{
FILE *f1;
FILE *f2;
char ch;
int linia, tmp = 1;
f1 = fopen(DB, "r");
printf(" \n Enter line number:");
scanf("%d", &linia);
f2 = fopen("kopia.txt", "a+");
ch = getc(f1);
while (ch != EOF)
{
ch = getc(f1);
if (ch == '\n')
{ tmp++; }
if (tmp != linia)
{putc(ch, f2);}
}
fclose(f1);
fclose(f2);
remove(DB); //not working
rename("kopia.txt",DB); //not working
printf("\n Done:\n");

return 0;
}

最佳答案

  ...
int ch;
while (1)
{
ch = getc(f1);
if (ch == EOF) break;
if (ch == '\n') tmp++;
if (tmp != linia) putc(ch, f2);
}
...

关于C 从文件中删除一行不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25831646/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com