cout可以与监视器以外的任何东西相关联吗?

Pro*_*thu 1 c++ cout

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

是否有任何情况下cout被连接到任何其他输出设备,如可能是打印机?或者就像cout指的是监视器和cin到键盘一直.

toz*_*zka 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
Run Code Online (Sandbox Code Playgroud)