admin管理员组文章数量:1660067
#include <stdio.h>
#include <stdlib.h>
// 函数定义:删除文件中的指定行
void deleteLine(const char* filename, int line) {
FILE* fp_in, * fp_out; // 定义输入和输出文件指针
int count = 1; // 用于计数的变量,从1开始因为第一行是1而不是0
char ch; // 用于读取单个字符的变量
char temp_filename[256]; // 定义临时文件的名称
// 创建临时文件的名称,原文件名加上.tmp后缀
sprintf(temp_filename, "%s.tmp", filename);
// 以只读方式打开原始文件
fp_in = fopen(filename, "r");
// 以写入方式打开临时文件
fp_out = fopen(temp_filename, "w");
// 检查文件是否成功打开
if (!fp_in || !fp_out) {
printf("Error opening files\n");
exit(1); // 如果文件打开失败,则退出程序
}
// 逐字符读取原始文件的内容
while ((ch = fgetc(fp_in)) != EOF) {
// 当读取到换行符时,行数加1
if (ch == '\n') {
count++;
}
// 如果当前行不是要删除的行,则将该字符写入临时文件
if (count != line) {
fputc(ch, fp_out);
}
}
// 关闭输入和输出文件
fclose(fp_in);
fclose(fp_out);
// 删除原始文件
remove(filename);
// 将临时文件重命名为原始文件名
rename(temp_filename, filename);
// 输出成功删除行的消息
printf("Successfully deleted line %d from file %s\n", line, filename);
}
int main() {
const char* filename = "tmp.txt"; // 定义要操作的文件名
int line = 3; // 定义要删除的行号
// 调用函数删除指定行
deleteLine(filename, line);
return 0;
}
如果出现无法打开的情况尝试将路径"tmp.txt"替换为"tmp.txt.txt"
版权声明:本文标题:C语言:删除指定文件内容 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/xitong/1729844898a1215017.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论