c++ - C++程序打印到哪里?

标签 c++

您可以使用 fout 指定将某些程序中计算出的值输出到的文件,但是当您只使用 printf 时呢?这不会在命令行上打印一些东西吗(但这就是 cout 的作用?)在我看来 printf 确实打印到一个文件,但是打印到什么文件?

请注意,我已经看到帖子 'printf' vs. 'cout' in C++但所有答案似乎都假定了解 printf 从根本上 的事情,而这正是我难以理解的地方。

最佳答案

对于某些输出操作,您必须指定要将输出发送到的文件/流。 fprintf函数(来自 C 库)就是一个例子。它的第一个参数是 FILE* 类型,并且它必须引用您打开的文件 - 或者默认的预打开文件之一。特定于 C++ 的 std::cout << "hello\n"是另一个例子; std::cout是一个预先打开的输出流。

对于其他操作,例如printf ,输出的位置是隐式的。 printf(args...)被定义为等同于 fprintf(stdout, args...) .

C stdout (类型为 FILE* )和 C++ std::cout (这是从 std::basic_ostream 派生的类型)都引用标准输出。这是在您的程序开始执行时由环境为您打开的输出流。

发送到标准输出 的输出的实际位置取决于操作系统和您调用程序的方式。通常它会默认打印到当前终端窗口。 (在旧系统上,它可能是纯文本终端屏幕或硬拷贝终端。)大多数操作系统都提供重定向标准输出的方法,例如:

your_program > output.txt

your_program | another_program

your_program > /dev/null

这些(尝试)将输出发送到指定文件、另一个程序的输入或丢弃所有发送给它的输入的设备。

关于c++ - C++程序打印到哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48084774/

相关文章:

c++ - 我希望 C++ 生成随机数是重复的

c++ - OpenCV:运算符 "+"错误;添加

c++ - 从主窗体显示另一个窗体 Qt C++

c++ - 从 cryptopp::integer 转换为 QString

c++ - 试图让我的 C++ 代码编译,g++ 无法识别?

c++ - 如何制作 CMake 模块

c++ - 如何使用 enter(回车)终止无限循环

c++ - 如何为自定义模板化对象创建专门的函数模板?

c++ - 此应用程序已请求运行时以异常方式终止它。

在 header 中声明的c++私有(private)成员与在cpp文件中声明的静态变量