6

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

程序输出一个阶段一段时间,基本上我的输出是这样的:

time 0:00 stage 1

time 0:05 stage 1

...

time 2:05 stage 2

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

4

4 回答 4

8

所以也重定向输入:

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

其中input.txt包含时间量。

于 2012-11-23T08:15:03.143 回答
2

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

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

并重定向stderroutput.txt

./myprog 2> output.txt

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

于 2012-11-23T08:24:23.537 回答
1

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

于 2012-11-23T08:15:12.660 回答
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 都会转到“myoutput.txt”。还将标准输入重定向到 myinput.txt,因此所有 scanfs 都从“myinput.txt”读取。

于 2012-11-23T11:30:34.860 回答