什么是ios :: in | ios :: out?

时间:2015-02-05 07:52:27

标签: c++ file-handling

我正在阅读一些项目代码,我发现了这里,这里的MembersOfLibrary()是类MenberOfLibrary的构造函数

    class MembersOfLibrary {

  public:
    MembersOfLibrary();
    ~MembersOfLibrary() {}
    void addMember();
    void removeMember();
    unsigned int searchMember(unsigned int MembershipNo);
    void searchMember(unsigned char * name);
    void displayMember();
  private:
    Members    libMembers;

};

MembersOfLibrary::MembersOfLibrary() {

    fstream memberData;
    memberData.open("member.txt", ios::in|ios::out);
    if(!memberData) {
    cout<<"\nNot able to create a file. MAJOR OS ERROR!! \n";
    }
    memberData.close();
}

我无法理解 - &gt;的含义ios :: in | ios :: out&lt; - 请帮帮忙! 谢谢

3 个答案:

答案 0 :(得分:12)

  • ios::in允许来自流的输入(读取操作)。
  • ios::out允许输出(写操作)到流。
  • |(按位OR运算符)用于组合两个ios标志,
    意思是将ios::in | ios::out传递给构造函数
    std::fstream启用两个流的输入和输出。

需要注意的重要事项:

  • std::ifstream会自动设置ios::in标记。
  • std::ofstream会自动设置ios::out标记。
  • std::fstream自动没有ios::inios::out 组。这就是为什么它们会在您的示例代码中明确设置。

答案 1 :(得分:3)

 memberData.open("member.txt", ios::in|ios::out);
当你想从文件中读取

时,使用

ios :: in 当您要写入文件

时,使用

ios :: out

ios :: in | ios :: out表示ios :: in或ios :: out,表示使用的是

这是一个有用的链接

http://www.cplusplus.com/doc/tutorial/files/

答案 2 :(得分:3)

ios::inios::outopenmode flags,在您的情况下与二进制|)操作相结合。因此,文件被打开以进行读写。