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中?)

解决方案 »

  1.   

    io操作在fflush,fclose时才提交
    所以当你fclose时提交了最好一次操作,而前面的没有!
      

  2.   

    从你的代码中看不出是什么时候打开文件B的,在你的代码中你在
       temp=fclose(pOut);
    句中实际上关闭的是一个"从未打开"的文件B.
      

  3.   

    文件B是在scanner_example(pIn)中打开的,pOut是个全局指针。
      

  4.   

    fflush()完之后还是不行,和原来一样
      

  5.   

    如果pOut是全局指针,那么尝试着在    temp=fclose(pOut);
    后加上
        Sleep(3000);然后再看B文件.flush()函数帮不了你的忙,那个函数是用在close()函数前面的.