Вы ничего не печатаете на createOutputFile
, вместо этого все печатается на cout
. Вот почему ничего не видно в файле, а все в консоли.
Самый простой способ решить вашу проблему - перенаправить cout
в createOutputFile
выходной буфер, например:
auto cout_buff = cout.rdbuf();
...
createOutputFile.open(outputFileName);
cout.rdbuf(createOutputFile.rdbuf())
// all cout outputs will now go to the file...
...
cout.rdbuf(cout_buff); // restore when finished...
В противном случае переместите логи печати c в отдельную функцию, которая принимает ostream&
в качестве параметра:
void doMyLogic(ostream &os)
{
// print to os as needed...
}
...
if (printOption == 1) {
doMyLogic(cout);
break;
}
if (printOption == 2) {
...
ofstream createOutputFile(outputFileName);
doMyLogic(createOutputFile);
break;
}
...