gpt4 book ai didi

c++ - 将所有程序输出写入 C++ 中的 txt 文件

转载 作者:可可西里 更新时间:2023-11-01 16:53:50 26 4
gpt4 key购买 nike

我需要将我所有的程序输出写入一个文本文件。我相信这是这样做的,

sOutFile << stdout;

其中 sOutFile 是像这样创建文件的 ofstream 对象:

sOutFile("CreateAFile.txt" ); // CreateAFile.txt is created.

当我将 stdout 插入 sOutFile 对象时,我得到一些代码,这些代码似乎类似于 octal [十六进制] 代码或我创建的文本文件中的某种地址。

0x77c5fca0

但令我困惑的是,在我的程序中我多次使用 cout。大多只是字面上的陈述。如果我没记错的话,那是程序输出。

如果这段代码是一个地址,它会包含我所有的输出吗?我可以将它读回程序并以这种方式找出答案吗?

我该怎么做才能将我所有的程序输出写入一个文本文件?

最佳答案

如果您的程序已经使用 cout/printf 并且您想将当前输出的所有内容发送到一个文件,您可以简单地重定向 stdout 以在您现有的调用之前指向一个文件: http://support.microsoft.com/kb/58667

相关代码:

freopen( "file.txt", "w", stdout );
cout << "hello file world\n"; // goes to file.txt
freopen("CON", "w", stdout);
printf("Hello again, console\n"); // redirected back to the console

或者,如果您只想将某些内容打印到文件中,您只需要一个常规文件输出流:http://www.cplusplus.com/doc/tutorial/files.html

相关代码:

ofstream myfile;
myfile.open("file.txt");
myfile << "Hello file world.\n";
printf("Hello console.\n");
myfile.close();

编辑汇总 John T 和 Brian Bondy 的答案:
最后,如果您从命令行运行它,您可以使用重定向运算符“>”或附加“>>”来重定向输出,就像其他人提到的那样:

myProg > stdout.txt 2> stderr.txt

关于c++ - 将所有程序输出写入 C++ 中的 txt 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/574543/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com