Офсетная печать в другой функции

У меня странная проблема. У меня есть две функции, которые обе передаются по ссылке. Однако когда я вызываю вторую функцию, часть первой функции печатается.

Вот первая функция:

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 ]

Я не хочу, чтобы слово "random" печаталось между меткой и последовательностью.

Как это исправить?

1 ответ

Похоже, у вас есть два отдельных ofstream объекты ссылаются на один и тот же базовый файл, что является довольно плохой идеей, если вы не собираетесь выполнять много операций поиска и сбрасывать при каждой записи, чтобы гарантировать, что позиции файла обновляются при каждой записи.

Другие вопросы по тегам