Я хочу перенаправить cout в файл при необходимости.Вот основная часть моей тестовой программы, но я не могу понять, что некоторые входные данные не были направлены в файл.
ucla();
ucla() {
std::cout << "inside ucla" << std::endl;
}
int main() {
const char* outName = argv[2];
std::string outFile(outName);
std::streambuf *coutbuf, *termbuf;
termbuf = std::cout.rdbuf();
if (!outFile.empty()) {
std::ofstream outstr;
outstr.open(argv[2]);
coutbuf = outstr.rdbuf();
std::cout.rdbuf(coutbuf);
std::cout << "here" << std::endl;
} else {std::cout.rdbuf(termbuf);}
std::cout << "this file " << std::endl;
ucla();
}
Когда программа запущена, только здесь была записана в файл, яожидаю, что этот файл внутри ucla Я искал более ранние темы, и я не могу понять, чего не хватает.Спасибо