用C语言删除文本文件里的一行数据
时间: 2024-01-10 22:03:55 浏览: 392
要删除文本文件中的一行数据,可以先将文本文件读入到程序中,找到需要删除的行,然后将其他行写回到文件中。下面是一个使用C语言实现删除文本文件中某一行的示例代码:
```c
#include <stdio.h>
void deleteLine(const char* fileName, int lineNumber) {
FILE* fp1, *fp2;
char ch;
int currentLine = 1;
// 打开原文件和临时文件
fp1 = fopen(fileName, "r");
fp2 = fopen("temp.txt", "w");
// 逐行读取原文件并写入临时文件
while ((ch = fgetc(fp1)) != EOF) {
if (ch == '\n') {
currentLine++;
}
// 如果不是需要删除的行,则写入临时文件中
if (currentLine != lineNumber) {
fputc(ch, fp2);
}
}
// 关闭文件
fclose(fp1);
fclose(fp2);
// 删除原文件
remove(fileName);
// 将临时文件重命名为原文件
rename("temp.txt", fileName);
}
int main() {
// 删除第5行
deleteLine("test.txt", 5);
return 0;
}
```
在上面的示例代码中,`deleteLine` 函数接受一个文件名和一个行号作为参数,用于删除文件中的某一行。该函数首先打开原文件和一个临时文件,然后逐行读取原文件并写入临时文件,如果当前行不是需要删除的行,则将其写入临时文件中。最后,删除原文件并将临时文件重命名为原文件。
在 `main` 函数中,我们调用 `deleteLine` 函数来删除文件 `test.txt` 中的第5行数据。
阅读全文