如何在类Unix的shell中保存交互式命令行程序的输出?

4

我正在使用C语言编码,并在Linux终端上运行程序。我想将程序的输出保存在一个.txt文件中。通常,我通过执行./a.out>filename.txt来实现这一点。

但是,我编写了一个交互式程序,在其中必须输入一个数字才能启动程序。在这种情况下,我该怎么做呢?

非常感谢您的帮助和宝贵建议。

4个回答

6

这不允许访问标准输入以输入参数。 - David Victor
1
实际上,您的建议在代码不需要交互时有效,但当它需要我们输入一些内容时就无效了。不管怎样,感谢您的回复。 - suhas
谢谢,最终它成功了,因为你的建议。实际上,最初我打字时犯了一个错误。再次感谢你,伙计。 - suhas

6
将输入数字的要求从终端移至命令行参数。
./a.out 42 > filename.txt

或者更简单地,接受来自重定向输入的输入。

echo 42 | ./a.out > filename.txt
./a.out < input.txt > filename.txt

6

你可以使用script命令将所有输出内容捕获到文件中。

$ man script


1
假设你已经在名为“input.txt”的文件中输入了想要传递给程序的数字。如果你想将输出重定向到“output.txt”,那么在命令行中输入:
./a.out  <  input.txt  >  output.txt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接