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



我想知道是否有任何方法可以将我的程序的结果存储到文本文件中。 我知道你可以做一些类似 ./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" 读取。

相关内容

  • 没有找到相关文章

最新更新