加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 09:31:34 所属栏目:百科 来源:网络整理
导读:正如我们在C中所知,我们有类iostream,它继承自istream(basic_istream)和ostream(basic_ostream).在您可以找到的每本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抽象,例如套接字或内存缓冲区.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读