使用地图容器内容c ++写入文件

时间:2015-01-22 21:58:50

标签: c++ dictionary containers fstream ostream

我的问题是如何使用地图中的内容写入c ++文本文件。目前我正试图以当前的方式写入我的文件:

void toFile()
{
   ofstream outFile;
   outFile.open("random.txt");
   if(outFile.is_open()){
      for(it = mymap.begin(); it != mymap.end(); it++){
         if(mymap.size()!=0){
            outFile << it->second.listInfo() << endl;
            outFile.close();
        }   
        else{
            cout << "An Error has occured" << endl;
        }
      }
   }
}

我的函数listInfo()是一个只打印出我自己实现的类的信息的函数。

void listInfo(){
cout << "NAME: " << name << "Adress " << adress << "Color " << color;
}

我的问题是当我使用:it->second.listInfo()写入我的文件时出现错误,但是当我使用it->first时,我没有收到错误。有人可以解释为什么我的代码生成错误而不是将我的子类中的信息列出到我的文件中吗?

1 个答案:

答案 0 :(得分:1)

您似乎没有写入文件:

outFile << it->second.listInfo() << endl;

// This doesnt return anything it simply writes to standard out. 
void listInfo(){
  cout << "NAME: " << name << "Adress " << adress << "Color " << color;
}

你可能希望做这样的事情:

void YourClass::listInfo(std::ofstream ) {
    out << "NAME: " << name << "Adress " << adress << "Color " << color << endl;

}


it->second.listInfo(outFile);

这样您的数据就可以成功地流式传输到文件中。