c++ - cout 可以与 monitor 以外的任何东西相关联吗?

标签 c++ cout

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

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

最佳答案

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

关于c++ - cout 可以与 monitor 以外的任何东西相关联吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12793900/

相关文章:

c++ - OpenMPI 上的线程应用程序仅在节点上使用 1 个内核

c++ - AWS S3 aws-sdk-cpp GetObject "Unable to connect to endpoint"

c++ - 无法使用 ifstream 将 txt 文件的最后一部分写入 cout

c++ - 为什么 cout 在与三元和 int 一起使用时打印 char 的 ascii 值?

c++ - std::cout 是否缓冲?

C++指针: dereferencing,赋值等

c++ - Boost::Positional Options 无法使所有参数位置化

c++ - sqlite,获得一行的最快方法是什么?

C++ 为什么我的对象 vector 不打印对象的变量?

c++ - 给定数组时 cout 如何工作?