'cout是一个输出流对象,它附加到进程的标准输出设备,通常是运行程序的终端' - 我的书就是这样说的。只是对以下内容感到好奇:
是否有任何情况下cout被连接到任何其他输出设备,例如可能是打印机?或者就像cout指的是监视器和cin一直到键盘。
答案 0 :(得分:6)
cin
是标准输入,虽然大多数系统从键盘获取输入但是没有必要。 cout
是标准输出,大多数系统再次将stdout(标准输出)设置为控制台。但你可以重定向它。
例如提交:
std::ofstream file;
file.open ("test.txt"); // open file
std::streambuf *orig_out = std::cout.rdbuf(); // save cout
std::streambuf *buf = file.rdbuf(); // get file's streambuf
std::cout.rdbuf(buf); // redirect cout to file
std::cout << "This is written to the file";
std::cout.rdbuf(orig_out); // restore cout's original output
file.close(); // close file
答案 1 :(得分:2)
简短回答是“是”。 Cout只是一个输出流。在unix中,您可以创建管道
command1 | command2
命令1的stdout转到命令2的标准输入 - 即不是监视器和键盘。
stdout(以及cout)也可以重定向:
command > some_file_or_device.
答案 2 :(得分:1)
是
cin和cout是iostreams,它们是标准的,但它们也是正常的,即你可以关闭stdin和stdout并重新打开其他设备作为标准输出或输出。