使用fopen以只读方式打开一文件读入文件内容
FILE *fp=fopen(filename,"r");
然后再用fclose(fp)关闭文件。
当程序不退出,再用fopen以只写方式打开同一文件写入文件内容时,
FILE *fp=fopen(filename,"w");
文件却不是以只写方式写入,而是以追加方式在原文件后追加新写入的内容,请问这是怎么回事,应该如何避免。
谢谢。
原因我不知道,但是我想你可以是一下重新定位指针,再第二次打开的时候,用定位指针的函数将指针定位在文件的开始处,好像是seek我记不清了,你查一下
fseek
mark
我试验过了,你在骗人吧,怎么我的方式不是追加方式,以下是我的代码:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
FILE *fp;
fp=fopen("error.txt","r");
fclose(fp);
fp=fopen("error.txt","w");
fprintf(fp,"%s","i cant believe");
fclose(fp);
}
Up
怪了,你写入方式就是要写啊。
你想达到的效果是什么?
老兄,你的问题不在这里
fstream file;
file.open("test.txt",ios::out);
file<<"A";
file.close();
上面的代码就行了
设置ios::out其实隐含了ios::trunc
而后者的意义是:如果文件存在,使其长度为0,并消去原来的内容
忘了说了,只有单独设置ios::out才隐含ios::trunc
<br />
所以,如果象你的代码,就要这样做
<br />
fstream file;
file.open("test.txt",ios::out|ios::in|ios::trunc);
file<<"A";
file.close();
Ok???