微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c – 我应该在哪里使用iostream类?

正如我们在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没有使用以及如何使用它.

谢谢,抱歉我的英语:).

附:可能这个问题是原始的,但请回答我.

编辑:我的代码现在正在运行.感谢Murka.

解决方法

您可能希望读取和写入相同的流,因为流执行类型转换,如std :: stringstream.您还可以对允许读取和写入的数据源进行iostream抽象,例如套接字或内存缓冲区.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐