我需要将我所有的程序输出写入一个文本文件。我相信这是这样做的,
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/