Я столкнулся с загадочной ошибкой, связанной со струнным потоком. У меня есть объект, свойства которого я хочу вывести в файл с помощью dumpState (). Этот объект имеет несколько объектов-членов, для каждого из которых был определен оператор <<. Вот код: </p>
void dumpState(int step){
stringstream s;
s << DUMP_PATH << step;
string filename;
//s >> filename;
fstream f;
f.open("fuuuuu.csv", fstream::out);
//f.open(filename.c_str(), fstream::out);
f << numNodes << '\n';
f << nodes << '\n';
f << numEdges << '\n';
f << edges << '\n';
f.close();
}
Мое намерение, конечно, написать файл, имя которого определяется пошагово. К сожалению, я считаю, что выводимые значения являются поддельными. Отследив ошибку, я обнаружил, что если я закомментирую "s >> filename;" значения верны.
Должна быть какая-то проблема с очисткой, но я не знаю, как ее исправить. Есть идеи по поводу этого довольно зловещего жука?
UPDATE:
Я думаю, что проблема была довольно сложной ошибкой из-за ошибки в другом месте моего кода. После реструктуризации моего кода исходный код, который я разместил, работает нормально.