'cout 是一个输出流对象,它连接到进程的标准输出设备,通常连接到运行程序的终端'-我的书是这样说的。只是对以下内容感到好奇:
是否存在将 cout 连接到任何其他输出设备(例如可能是打印机)的情况?或者就像 cout 始终指代监视器和 cin 到键盘一样。
cin
是标准输入,虽然大多数系统从键盘获取输入,但这不是必需的。cout
是标准输出,大多数系统再次将标准输出(标准输出)设置为控制台。但是你可以重定向它。
例如归档:
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
简短的回答是“是”。Cout 只是一个输出流。在 unix 中,您可以创建管道
command1 | command2
命令 1 的标准输出转到命令 2 的标准输入 - 即不是显示器和键盘。
标准输出(以及 cout)也可以被重定向:
command > some_file_or_device.
是的。
cin 和 cout 是 iostream,它们是标准的,但它们也很正常,即您可以关闭 stdin 和 stdout 并重新打开其他一些设备作为 stdin 或 out。