C如何删除文本文件中的一行
发表时间:2024-10-12 13:05:34
来源:网友投稿
在C语言中,删除文本文件中的一行可以通过以下步骤实现:
打开目标文件,使用 fopen() 函数,并指定文件模式为“r+”。
读取文件内容,使用 fgets() 或其他适合的读取函数。
创建一个临时文件,使用 fopen() 函数,并指定模式为“w+”。
逐行读取原始文件,如果读取的不是要删除的那一行,就将其写入临时文件。
如果读取到要删除的行,则跳过这一行,继续读取下一行,直到文件结束。
关闭原始文件和临时文件。
删除原始文件,使用 remove() 函数。
将临时文件重命名为原始文件的名称,使用 rename() 函数。
以下是实现这一功能的示例代码:
#include <stdio.h>
#include <stdlib.h>
int delete_line(const char *filename, int line_number) {
FILE *file = fopen(filename, "r+");
if (!file) {
perror("Error opening file");
return -1;
}
FILE *temp = fopen("temp.txt", "w+");
if (!temp) {
perror("Error creating temporary file");
fclose(file);
return -1;
}
char line[1024];
int current_line = 1;
while (fgets(line, sizeof(line), file)) {
if (current_line == line_number) {
// Skip this line
} else {
fputs(line, temp);
}
current_line++;
}
fclose(file);
fclose(temp);
remove(filename);
rename("temp.txt", filename);
return 0;
}
int main() {
if (delete_line("example.txt", 3) == 0) {
printf("Line deleted successfully.\n");
} else {
printf("Failed to delete line.\n");
}
return 0;
}
在这段代码中,我们首先打开要修改的文件,然后创建一个临时文件。我们读取原始文件中的每一行,如果当前行号不是我们想要删除的行号,我们就将其写入临时文件。最后我们关闭文件,删除原始文件,并将临时文件重命名为原始文件的名称。这样我们就成功地删除了指定行。
免责声明:本站发布的教育资讯(图片、视频和文字)以本站原创、转载和分享为主,文章观点不代表本网站立场。
如果本文侵犯了您的权益,请联系底部站长邮箱进行举报反馈,一经查实,我们将在第一时间处理,感谢您对本站的关注!
相关资讯
2025年会计行业十大趋势:技术变革与职业转型
2025-07-03
汽修专业新疆怎么找工作
2025-04-06
机械专业专长怎么写简历
2025-04-06
专科怎么报审计专业的
2025-04-06
专业学科导师类别怎么填
2025-04-06
查报考专业网站怎么查
2025-04-06
水电专业规划怎么写简历
2025-04-06
表演专业怎么留学的好呢
2025-04-06
专业防雷检测怎么收费的
2025-04-06
怎么查询同等学力专业
2025-04-06
高考技能专业怎么选择的
2025-04-06
钢筋套筒专业名称怎么写
2025-04-06
中专怎么填高考志愿专业
2025-04-06
中专统招怎么报志愿专业
2025-04-06
师范专业自我评价怎么写
2025-04-06
景观建筑换专业怎么换好
2025-04-06
新励学网教育平台
海量全面 · 详细解读 · 快捷可靠
累积科普文章数:18,862,126篇
热门关注