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