我有一个奇怪的问题。我有两个函数,它们都有一个通过引用传递的ofstream。但是,当我调用第二个函数时,正在打印第一个函数的一部分。
这是第一个功能:
void GamePlay::dealDominos(ofstream& outStream, int seed){
for(int i = 0; i < 10; ++i)
{
outStream << "random " << rand() << endl;
}
}
我的第二个功能是:
void GamePlay::findLongestSeq(ofstream& outStream)
{
outStream << toStringSeq(label, maxSeq) << endl;
}
但是,我的输出如下:
NEW MAX [ T 0 8 ]
NEW MAX random [ T 0 8 ][ T 8 1 ]
NEW MAX ndom [ T 0 8 ][ T 8 1 ][ T 1 1 ][ T 1 2 ]
NEW MAX dom [ T 0 8 ][ T 8 1 ][ T 1 1 ][ T 1 2 ][ T 2 11 ]
MAX SEQ FOR: dom [ T 0 8 ][ T 8 1 ][ T 1 1 ][ T 1 2 ][ T 2 11 ]
我不希望在标签和序列之间打印“随机”这个词。
我该如何解决这个问题?
答案 0 :(得分:1)
看起来你有两个独立的ofstream
对象引用相同的底层文件,这是一个非常糟糕的主意,除非你要在每次写入时进行大量的搜索操作和刷新,以确保每次写入都会更新文件位置。