-2
我正在使用fread进行文件读取,如下面的代码所示。请帮助我如何立即删除我完成阅读的文件的内容。因此,如果我读取一个值,请从文件中删除该值并执行fclose。稍后当我打开文件时,文件应该只剩下两个值。 我不知道用哪个函数来删除。请帮帮我。 如何同时读取和删除文件中的内容C
我使用下面
#include<stdio.h>
#include <stdlib.h>
int main()
{
int *p;
p = malloc(sizeof(int));
p1 = malloc(sizeof(int));
p2 = malloc(sizeof(int));
*p = 5;
*p1 = 6;
*p2 = 7;
FILE *fp1 = fopen("sridhar.txt","w");
fwrite(p,sizeof(int),1,fp1);
fwrite(p1,sizeof(int),1,fp1);
fwrite(p2,sizeof(int),1,fp1);
fclose(fp1);
printf("\n Value of p p1 p2 written into the file is :%d \n",*p,*p1,*p2);
int *q, *q1, *q2;
FILE *fp2 = fopen("sridhar.txt","r");
q = malloc(sizeof(int));
q1 = malloc(sizeof(int));
q2 = malloc(sizeof(int));
fread(q,sizeof(int),1,fp2);
fclose(fp2); // Delete Logic may come here
*fp2 = fopen("sridhar.txt","r");
fread(q1,sizeof(int),1,fp2);
fclose(fp2);
// Delete Logic In here
*fp2 = fopen("sridhar.txt","r");
fread(q2,sizeof(int),1,fp2);
fclose(fp2);
// Delete logic here
printf("\n Value of q q1 q2 read from the file is :%d %d %d\n",*q, *q1, *q2);
return 0;
}
现在的问题是:什么是你的_delete_。是否足以用空白或零字节覆盖它?还是必须彻底删除它,即后续的内容被转移(这更乏味)。 – Ctx
不相关,但'int * q; q = malloc(sizeof(int)); ..。 fread(q,...'是无意义的,使用int q; ... fread(&q,...'而不是 –
...和'* fp2 = fopen(“sridhar.txt”,“r”) ;'应该是'fp2 = fopen(“sridhar.txt”,“r”);'。编译时启用所有警告 –