如何将./a.out的结果存储到文本文件中

时间:2012-11-23 08:12:35

标签: c linux shell terminal

我想知道是否有任何方法可以将我的程序结果存储到文本文件中。我知道你可以做类似的事情./a.out> output.txt但是对于我的程序,在我键入./a.out之后我再次提示TIME:我在那里放入时间量,然后在点击输入时执行算法并输出结果。

程序输出一段时间,基本上我的输出如下:

time 0:00 stage 1

time 0:05 stage 1

...

time 2:05 stage 2

如何将输出存储到文本文件中?

4 个答案:

答案 0 :(得分:6)

因此,重定向输入:

./a.out < input.txt > output.txt

input.txt包含时间量。

答案 1 :(得分:2)

一种方法是将结果打印到stderr

fprintf(stderr, "time %d:....");

stderr重定向到output.txt

./myprog 2> output.txt

注意:如果您不想打开文件,这是一种解决方法,我不喜欢将stderr用于除错误之外的其他任何内容。

答案 2 :(得分:1)

一种解决方案是将TIME参数作为参数传递并使用./a.out time&gt; output.txt将其输出到文件。

答案 3 :(得分:0)

最简单的方法是sudo_O告诉你的(它在每个操作系统中都有效)

./a.out <in.txt >out.txt. 

如果要在C中执行此操作,请使用freopen()(http://www.cplusplus.com/reference/clibrary/cstdio/freopen/

 freopen ("myoutput.txt","w",stdout);
 freopen ("myinput.txt","r",stdin);

这会将stdout重定向到myoutput.txt,因此所有printfs都会转到&#34; myoutput.txt&#34;。 还将stdin重定向到myinput.txt,因此所有scanfs都从&#34; myinput.txt&#34;中读取。