ofStream打印在另一个功能

时间:2014-10-08 22:53:28

标签: c++ ofstream

我有一个奇怪的问题。我有两个函数,它们都有一个通过引用传递的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 ]

我不希望在标签和序列之间打印“随机”这个词。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

看起来你有两个独立的ofstream对象引用相同的底层文件,这是一个非常糟糕的主意,除非你要在每次写入时进行大量的搜索操作和刷新,以确保每次写入都会更新文件位置。