【发布时间】:2011-06-01 00:38:31
【问题描述】:
正如我们在 C++ 中所知道的,我们有类 iostream,它继承自 istream(basic_istream) 和 ostream (basic_ostream)。在您可以找到的每一本 C++ 书籍中,您都可以使用 iostream 类对象读取和写入同一个流。但我真的没有看到任何解释或例子来理解我为什么要使用这种奇怪的想法。我真的不知道为什么我需要写入某个流而不是从中读取:(。
你能解释一下我什么时候需要这种结构吗?我认为使用这种构造肯定有严重的理由(不要忘记,仅对于 iostream 声明,我们才使用虚拟继承和多重继承)。
此外,当我尝试编写一个使用 fsteram(iostream 的衍生物)的简单代码时,我发现它无法正常工作,这是我所期望的。这是我的代码:
#include <fstream>
using namespace std;
int main()
{
fstream fstr("somefile.txt",fstream::in|fstream::out);//fstream is deriveted from iosteram
int n;
fstr>>n;//reading n (WORKS FINE !!!).
fstr.flush();
//trying to print Hello to the same file
fstr<<"Hello"<<endl;// NOT WORKING!!!!!!!
fstr.flush();
return 0;
}
那么你能告诉我为什么这段代码可以从文件中读取而不能写东西吗???
简历: 请告诉我为什么我们需要类 iosteram 以及为什么 isteram 和 ostream 不够用以及如何使用它。
感谢和抱歉我的英语:)。
附:可能这个问题太原始了,但请回答我。
编辑:我的代码现在可以工作了。感谢穆尔卡。
【问题讨论】: