我有大量的 printf 语句,我想将它们全部写入一个文本文件。我意识到我可以在每个语句之后添加 fprintf 语句,但有没有更好的方法,比如函数,或者我应该只编写自己的函数?我觉得这可能是一个标准程序,我只是不知道它叫什么,所以很难通过谷歌搜索找到答案。
编辑:为了清楚起见,我希望输出像往常一样继续在终端上运行,但也可以同时打印到文件中。有几个人建议使用 bash 命令。什么时候应该执行?程序运行后?
如果你在一个 UNIX 类型的盒子上,你可以通过管道输出tee
,这会将它传递到标准输出和一个文件:
myProg | tee /tmp/myProg.out
还有一些方法可以用标准错误做同样的事情:
( myProg 2>&1) | tee /tmp/myProg.out_and_err
这当然取决于您使用的任何外壳,但这应该适用于最常见的外壳。
当程序运行时,使用>
bash 操作符将程序输出重定向到一个文本文件:
IE
myprogram > myfile.txt
这会将通常输出到屏幕的所有内容保存printf
到名为 myfile.txt 的文件中。
如何将标准输出重定向到一个文件,比如
int main ()
{
freopen ("myfile.txt","w",stdout);
printf ("This sentence is redirected to a file.");
fclose (stdout);
return 0;
}
代码示例来自freopen的 c++ 参考
你可以这样做:./executable > outputfile 2>&1
或./executable &> outputfile
这将使您能够将标准输出和标准输出重定向到outputfile
.