我想知道是否有任何方法可以将我的程序的结果存储到文本文件中。 我知道你可以做一些类似 ./a.out>输出的事情.txt但对于我的程序,在我键入 ./a.out 后,我再次被提示输入 TIME:我在哪里输入时间,然后在点击 Enter 时执行算法并输出结果。
程序输出一个阶段一段时间,基本上我的输出是这样的:
time 0:00 stage 1
time 0:05 stage 1
...
time 2:05 stage 2
如何将输出存储到文本文件中?
因此,也重定向输入:
./a.out < input.txt > output.txt
其中input.txt
包含时间量。
一种方法是将结果打印到stderr
fprintf(stderr, "time %d:....");
并将stderr
重定向到output.txt
./myprog 2> output.txt
注意:如果您不想打开文件,这是一种解决方法,我不喜欢将stderr
用于除错误之外的任何内容。
一种解决方案是将 TIME 参数作为参数传递,并使用 ./a.out time>输出.txt将其输出到文件中。
最简单的方法是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"。还将 stdin 重定向到 myinput.txt,因此所有 scanfs 都从 "myinput.txt" 读取。