奇妙的文件关闭问题
FILE* pIn,*pOut;
int temp;
if((pIn=fopen(m_edit1,"r"))==NULL)
{
MessageBox("文件不能被打开",NULL,IDOK);
exit(1);
}
scanner_example(pIn);//该函数实现把A中的内容写到B中
temp=fclose(pOut);
if(temp==0)
MessageBox("关闭成功!");
else
MessageBox("关闭成功!");
fclose(pIn);
说明:pIn指向一个文件A ,pOut指向一个文件B,我是要把文件A中的内容写入文件B中,写完之后,调用函数fclose(pOut)。此时,B文件中只有A文件末尾的几个字符 ,而且这几个字符之前(文件B中)全被空格代替(感觉好像是前面的内容被隐藏的感觉)。这是为什么?当我把整个应用程序关闭时,再看文件B中的内容,这正确显示了A中的内容,这是为什么?难道fclose()函数并没有阵阵的关闭文件?
怎样才能在不关闭应用程序的情况下,把文件B关闭掉?(即A中的内容显示在B中?)
问题点数:100、回复次数:12Top
1 楼wangcx(我侵蚀着孤独)回复于 2004-12-02 18:49:26 得分 5
IO操作完毕后fflush()一下Top
2 楼sunxysong(寒羽)回复于 2004-12-02 19:05:18 得分 5
关注
Top
3 楼pleasehelpme(革命尚未成功,同志仍需努力)回复于 2004-12-02 19:17:58 得分 10
学习Top
4 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2004-12-02 20:09:28 得分 30
刷新一下Top
5 楼HunterForPig(留着口水的猪)回复于 2004-12-02 20:27:22 得分 5
io操作在fflush,fclose时才提交
所以当你fclose时提交了最好一次操作,而前面的没有!Top
6 楼Zark(金陵五月)回复于 2004-12-03 01:51:43 得分 30
从你的代码中看不出是什么时候打开文件B的,在你的代码中你在
temp=fclose(pOut);
句中实际上关闭的是一个"从未打开"的文件B.
Top
7 楼iamwiner(烛泪)回复于 2004-12-03 09:33:54 得分 5
UP一下^_^Top
8 楼cuishijie869335(余人)回复于 2004-12-03 14:52:47 得分 0
文件B是在scanner_example(pIn)中打开的,pOut是个全局指针。Top
9 楼cuishijie869335(余人)回复于 2004-12-03 14:56:10 得分 0
fflush()完之后还是不行,和原来一样Top
10 楼FlyYang(++X++)回复于 2004-12-03 15:36:04 得分 5
用_flushall呢Top
11 楼Zark(金陵五月)回复于 2004-12-03 23:40:11 得分 5
如果pOut是全局指针,那么尝试着在
temp=fclose(pOut);
后加上
Sleep(3000);
然后再看B文件.
flush()函数帮不了你的忙,那个函数是用在close()函数前面的.
Top
12 楼cuishijie869335(余人)回复于 2004-12-08 19:28:18 得分 0
谢谢各位,成功解决了,问题处再开的次数多而关的次数少。Top




