C语言删除文件部分内容
时间: 2023-10-24 10:04:51 浏览: 252
要删除文件的部分内容需要进行以下步骤:
1. 打开要删除部分内容的文件
2. 定位要删除的部分内容所在的位置
3. 将文件中该部分内容以后的数据向前移动,覆盖要删除的部分内容
4. 将文件指针移到文件末尾
5. 将文件截断到当前文件指针所在位置
6. 关闭文件
具体代码实现可以参考以下样例:
```
#include <stdio.h>
int main(){
FILE *fp;
char filename[] = "example.txt";
char temp[] = "delete";
char ch;
int pos = 5, cnt = 0;
fp = fopen(filename, "r+");
if(fp == NULL){
printf("Failed to open file.\n");
return 0;
}
fseek(fp, pos, SEEK_SET); //移动文件指针到要删除的位置
while((ch = fgetc(fp)) != EOF){ //将后续数据向前覆盖要删除的数据
cnt ++;
fseek(fp, -cnt, SEEK_CUR);
fputc(ch, fp);
fseek(fp, pos+cnt, SEEK_SET);
}
fseek(fp, -cnt, SEEK_CUR); //将文件指针移到文件末尾
ftruncate(fileno(fp), ftell(fp)); //将文件截断到当前文件指针所在位置
fclose(fp);
printf("File content after deletion:\n");
fp = fopen(filename, "r"); //打印文件内容
while((ch = fgetc(fp)) != EOF)
printf("%c", ch);
fclose(fp);
return 0;
}
```
阅读全文