1

'cout 是一个输出流对象,它连接到进程的标准输出设备,通常连接到运行程序的终端'-我的书是这样说的。只是对以下内容感到好奇:

是否存在将 cout 连接到任何其他输出设备(例如可能是打印机)的情况?或者就像 cout 始终指代监视器和 cin 到键盘一样。

4

3 回答 3

6

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
于 2012-10-09T06:30:14.103 回答
2

简短的回答是“是”。Cout 只是一个输出流。在 unix 中,您可以创建管道

command1 | command2

命令 1 的标准输出转到命令 2 的标准输入 - 即不是显示器和键盘。

标准输出(以及 cout)也可以被重定向:

command > some_file_or_device.
于 2012-10-09T06:19:35.393 回答
1

是的。

cin 和 cout 是 iostream,它们是标准的,但它们也很正常,即您可以关闭 stdin 和 stdout 并重新打开其他一些设备作为 stdin 或 out。

于 2012-10-09T06:26:35.007 回答