C语言删除txt文件某一行
时间: 2023-08-26 21:03:44 浏览: 296
在C语言中,如果要删除txt文件中的某一行,可以按照以下步骤进行:
1. 打开原始文件和目标文件。原始文件是要删除行的文件,目标文件是删除行后的文件。
2. 读取原始文件的每一行,如果不是要删除的行,则将其写入目标文件。
3. 关闭原始文件和目标文件。
4. 删除原始文件。
5. 将目标文件重命名为原始文件名。
以下是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
FILE *fp1, *fp2;
char filename[100], temp[] = "temp.txt";
char ch[100];
int delete_line, count = 0;
printf("Enter file name: ");
scanf("%s", filename);
fp1 = fopen(filename, "r");
if (fp1 == NULL) {
printf("File doesn't exist.\n");
return 0;
}
fp2 = fopen(temp, "w");
if (fp2 == NULL) {
printf("Error while creating temporary file.\n");
fclose(fp1);
return 0;
}
printf("Enter line number to be deleted: ");
scanf("%d", &delete_line);
while (fgets(ch, 100, fp1)) {
count++;
if (count != delete_line) {
fputs(ch, fp2);
}
}
fclose(fp1);
fclose(fp2);
remove(filename);
rename(temp, filename);
printf("Line successfully deleted.\n");
return 0;
}
```
请注意,以上代码只能删除txt文件中的文本行,如果有其他类型的数据(例如二进制数据),则可能会导致意外的行为。
阅读全文