【发布时间】:2015-12-27 04:36:46
【问题描述】:
有没有办法将控制台输出重定向到日志文件,同时还允许控制台询问用户输入的文本?根据我对 Linux 的了解,要将控制台输出重定向到文件,只需键入以下 ./Executable > output.log 或 ./Executable | tee output.log。现在,例如,我在下面的代码中尝试:
int main(){
std::string name;
std::cout << "ENTER NAME: ";
std::cin >> name;
std::cout << "Welcome! So your name is '" << name << "'" << endl;
return 0;
}
控制台最初只会有一个闪烁的光标或输出所有内容并将副本存储在文件中。我希望控制台可以只输出“ENTER NAME:”而不是“Welcome!所以你的名字是'Test'。
谢谢
【问题讨论】:
-
是的,你可以这样做。见wordaligned.org/articles/cpp-streambufs。
-
另外,如果您可以选择使用
boost,您可以使用boost::iostreams::tee_device。见stackoverflow.com/questions/19641190/…。 -
@J3soon 感谢您向我介绍 freopen!但我的目标是在控制台上打印部分代码!
-
@RSahu 很遗憾,我不能使用 boost!来自高层的限制......