1

我有大量的 printf 语句,我想将它们全部写入一个文本文件。我意识到我可以在每个语句之后添加 fprintf 语句,但有没有更好的方法,比如函数,或者我应该只编写自己的函数?我觉得这可能是一个标准程序,我只是不知道它叫什么,所以很难通过谷歌搜索找到答案。

编辑:为了清楚起见,我希望输出像往常一样继续在终端上运行,但也可以同时打印到文件中。有几个人建议使用 bash 命令。什么时候应该执行?程序运行后?

4

4 回答 4

4

如果你在一个 UNIX 类型的盒子上,你可以通过管道输出tee,这会将它传递到标准输出一个文件:

myProg | tee /tmp/myProg.out

还有一些方法可以用标准错误做同样的事情:

( myProg 2>&1) | tee /tmp/myProg.out_and_err

这当然取决于您使用的任何外壳,但这应该适用于最常见的外壳。

于 2012-09-07T04:00:33.183 回答
3

当程序运行时,使用>bash 操作符将程序输出重定向到一个文本文件:

IE

myprogram > myfile.txt

这会将通常输出到屏幕的所有内容保存printf到名为 myfile.txt 的文件中。

于 2012-09-07T03:57:45.900 回答
2

如何将标准输出重定向到一个文件,比如

int main ()
{
  freopen ("myfile.txt","w",stdout);
  printf ("This sentence is redirected to a file.");
  fclose (stdout);
  return 0;
}

代码示例来自freopen的 c++ 参考

于 2012-09-07T04:18:28.097 回答
0

你可以这样做:./executable > outputfile 2>&1./executable &> outputfile

这将使您能够将标准输出和标准输出重定向到outputfile.

于 2012-09-07T05:07:32.663 回答