您可以使用 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/