我是 C++ 新手。我无法将数据输出到文件。我正在使用迭代器来打印地图。print 方法接受 i,一个键值,并打印出它对应的向量。现在,当我使用 cout<< 正常输出时,这工作得非常好,但是当我尝试将相同的输出放入文件时,我的程序崩溃了。我知道它是 outfile<< 行中的 *it 导致它崩溃,因为如果我用一些随机字符串替换它,它会将它输出到文件中。另外,我知道 print 方法中的参数没有引起任何问题,因为我可以将该方法直接转移到程序的 main 函数并得到相同的错误。任何有关如何解决此问题的帮助将不胜感激,谢谢!这是发生错误的打印方法:
public: void print(int i, vector<string> in, ostream& outfile) // print method for printing a vector and it's key
{
sort(in.begin(), in.end()); // sort the vector alphabetically first
vector<string>::iterator it;
it= unique(in.begin(), in.end()); // makes sure there are no duplicate strings
in.resize( distance(in.begin(),it) );
for( it = in.begin(); it != in.end(); it++ ) // iterate through it
cout << i << ": "<< *it<<endl; // and print out the key value and each string in the vector
// outfile<< i << ":" << *it<< endl; // prints to file
}