gpt4 book ai didi

c - 删除C中的文本 block

转载 作者:行者123 更新时间:2023-11-30 14:34:37 25 4
gpt4 key购买 nike

请帮我使用 C 程序从文本文件中删除文本 block :示例:
文件内容:
指数:1;姓名:姓名;规范:规范
注释:注释bla-bla-bla
-----
指数:2;姓名:姓名;规范:规范
注释:注释bla-bla-bla
-----
指数:3;姓名:姓名;规范:规范
注释:注释bla-bla-bla
-----

C 程序:输入索引:2

那么文件的内容是:
指数:1;姓名:姓名;规范:规范
注释:注释bla-bla-bla
-----
指数:3;姓名:姓名;规范:规范
注释:注释bla-bla-bla
-----

我认为接下来的算法是:我读取文件的内容。创建一个新文件。如果index不是我输入的,则将INDEX: n ... to -----的内容记录到另一个文件中。然后,当文件结束时,删除第一个文件并将第二个文件重命名为第一个文件的名称。但我不知道如何让它成为现实

我完成的代码:

    char *filename, *p, *index, *tmp, *q; //variables
int id, number;
filename = (char*)malloc((L_tmpnam + 1) * sizeof(char)); //
p = (char*)malloc(L_tmpnam * sizeof(char));
tmp = (char*)malloc(10 * sizeof(char));
puts("Enter the index");
scanf("%d", &id);

tmpnam(filename);
p = strstr(filename, "Temp\\"); p += 5;
*(p + (strlen(p) - 2)) = '\0';
strcat(p, ".txt");
FILE *f, *f2; //for first and second files
f = fopen("catalog.txt", "rt"); //opening for reading
f2 = fopen(p, "wt"); //opening for writing
while (fscanf(f, "INDEX: %d; NAME: %s; SPEC: %s", number, "name", "spec") != EOF) { //checking if index is that I need
if (number == id) { //here has to be NOT recording the content
while (strcmp(tmp, "-----") != 0) continue;
}
else { //Here has to be recording the content to another file
}
}
fcloseall(); // closing all the files

最佳答案

要写入文件,您可以使用 fputs、fwrite、fprintf 等函数,具体取决于您想要实现的目标以及您拥有的数据类型。

关于c - 删除C中的文本 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58900693/

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