C语言如何删掉文件中的某一行数据
时间: 2023-09-07 12:14:16 浏览: 262
在C语言中,如果想要删除文件中的某一行数据,通常需要先将文件读入到内存中,然后对内存中的数据进行修改,最后将修改后的数据重新写入到文件中。以下是一个简单的示例代码,可以实现删除文件中指定行的功能:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
FILE *fp1, *fp2;
char buffer[512];
int delete_line, temp = 1;
// 打开原始文件和临时文件
fp1 = fopen("file.txt", "r");
fp2 = fopen("temp.txt", "w");
// 获取需要删除的行数
printf("请输入需要删除的行数:");
scanf("%d", &delete_line);
// 复制除了需要删除的行以外的所有行到临时文件中
while (fgets(buffer, sizeof(buffer), fp1) != NULL)
{
if (temp != delete_line)
fputs(buffer, fp2);
temp++;
}
// 关闭文件
fclose(fp1);
fclose(fp2);
// 删除原始文件
remove("file.txt");
// 重命名临时文件为原始文件
rename("temp.txt", "file.txt");
printf("行 %d 已成功删除", delete_line);
return 0;
}
```
这个代码示例中,我们首先打开原始文件和临时文件,然后获取需要删除的行数。接下来,我们逐行读取原始文件中的数据,如果当前行不是需要删除的行,则将该行数据复制到临时文件中。最后,我们关闭文件,删除原始文件,重命名临时文件为原始文件。这样就完成了删除文件中指定行的操作。需要注意的是,这个示例代码中没有进行错误处理,实际使用时需要根据具体情况进行完善。
阅读全文