删除txt文本文件的某一行以C语言为例
时间: 2023-09-09 13:14:25 浏览: 330
删除文本文件中的某一行可以通过以下步骤实现:
1. 打开要删除行的文件并创建一个新文件用于存储修改后的内容。
2. 逐行读取原文件中的内容,如果当前行不是要删除的行,则将该行写入新文件。
3. 关闭原文件和新文件,删除原文件并将新文件重命名为原文件名。
下面是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *fp1, *fp2;
char ch;
int deleteLine, temp = 1;
// 打开原文件和新文件
fp1 = fopen("file.txt", "r");
fp2 = fopen("temp.txt", "w");
// 获取要删除的行数
printf("Enter line number to be deleted: ");
scanf("%d", &deleteLine);
// 逐行读取原文件中的内容
while ((ch = fgetc(fp1)) != EOF) {
// 如果当前行不是要删除的行,则将该行写入新文件
if (ch == '\n') {
temp++;
}
if (temp != deleteLine) {
fputc(ch, fp2);
}
}
// 关闭文件
fclose(fp1);
fclose(fp2);
// 删除原文件并将新文件重命名为原文件名
remove("file.txt");
rename("temp.txt", "file.txt");
printf("\n The contents of file after deletion is: \n");
// 打印修改后的文件内容
fp1 = fopen("file.txt", "r");
while ((ch = fgetc(fp1)) != EOF) {
printf("%c", ch);
}
// 关闭文件
fclose(fp1);
return 0;
}
```
在这个示例代码中,我们通过 `fgetc` 函数逐个字符读取文件内容,通过 `fputc` 函数将内容写入新文件。通过 `remove` 和 `rename` 函数删除原文件并将新文件重命名为原文件名。最后,我们再次打开文件并打印修改后的内容。
阅读全文