注册 登录
编程论坛 C++教室

关于文件流与文件的捆绑问题

panxiang88 发布于 2007-09-02 01:05, 501 次点击

main()
{
ofstream file_wrt("try");
string text;
cin>>text;
file_wrt<<text;
if(file_wrt.good())
cout<<"good!"<<endl;
//file_wrt.close();
ifstream file_read;
file_read.open("try");
string test;
file_read>>test;
cout<<test<<endl;
}

请问,为什么输出test为空呢?如果把注释去掉,即将file_wrt关掉,就可以了,是不是一个文件不能同时被两个流捆绑?如果是的话,为什么file_read.good()会是true呢?

2 回复
#2
天使梦魔2007-09-02 08:09

.good()是什么不太清楚。
本来就是真啊。
一有数据流进去就是true了,你前面又不没有其他条件设置,只是单纯的输入,当然是真了

#3
wfpb2007-09-02 17:54
那是因为你的file_wrt&lt;&lt;text;只是将text放入流缓冲区,只有将流刷新,flush();才能调用Win32 API函数WriteFile将数据写到硬盘上.当然,在关闭流的时候close函数也会调用freebuf和flush函数将数据写入硬盘,并释放流缓冲区.
1