我想将n=0写入文件,然后读出给m,m自加,再将m=1写入文件,(要求覆盖文件中的n=0),也就是把文件中已经保存的0改为1,这个应该怎么实现
另外。我这个打开和关闭文件和rewind(fp);是不是用的多了点。。在什么地方可以简化
求大神指导
#include<stdio.h>
#include<stdlib.h>
FILE *fp;
int main()
{
int n,m,i;
n=0;
if((fp=fopen("text2.txt","wt+"))==NULL)
{
printf("error");
exit(1);
}
fwrite(&n,sizeof(int),1,fp);
fclose(fp);
if((fp=fopen("text2.txt","rt"))==NULL)
{
printf("error");
exit(1);
}
rewind(fp);
fread(&m,sizeof(int),1,fp);
m++;
fclose(fp);
printf("%d\n",m);
if((fp=fopen("text2.txt","at"))==NULL)
{
printf("error");
exit(1);
}
rewind(fp);
fwrite(&m,sizeof(int),1,fp);
fclose(fp);
if((fp=fopen("text2.txt","rt"))==NULL)
{
printf("error");
exit(1);
}
rewind(fp);
fread(&i,sizeof(int),1,fp);
fclose(fp);
printf("%d",i);
return 0;
}
另外。我这个打开和关闭文件和rewind(fp);是不是用的多了点。。在什么地方可以简化
求大神指导
#include<stdio.h>
#include<stdlib.h>
FILE *fp;
int main()
{
int n,m,i;
n=0;
if((fp=fopen("text2.txt","wt+"))==NULL)
{
printf("error");
exit(1);
}
fwrite(&n,sizeof(int),1,fp);
fclose(fp);
if((fp=fopen("text2.txt","rt"))==NULL)
{
printf("error");
exit(1);
}
rewind(fp);
fread(&m,sizeof(int),1,fp);
m++;
fclose(fp);
printf("%d\n",m);
if((fp=fopen("text2.txt","at"))==NULL)
{
printf("error");
exit(1);
}
rewind(fp);
fwrite(&m,sizeof(int),1,fp);
fclose(fp);
if((fp=fopen("text2.txt","rt"))==NULL)
{
printf("error");
exit(1);
}
rewind(fp);
fread(&i,sizeof(int),1,fp);
fclose(fp);
printf("%d",i);
return 0;
}