在处理将输出重定向到文件时,您可以使用freopen()。 http://www.cplusplus.com/reference/cstdio/freopen/
假设您正在尝试重定向您的stdout
到一个文件'输出.txt' 那么你可以写-
freopen("output.txt", "a+", stdout);
Here "a+
" 用于附加模式。如果文件存在,则文件以附加模式打开。否则将创建一个新文件。
重新打开后stdout
with freopen()
所有输出语句(printf、putchar)都重定向到“output.txt”。所以在那之后任何printf()
语句会将其输出重定向到'输出.txt' file.
如果你想恢复printf()
再次的默认行为(即在终端/命令提示符中打印)那么您必须重新分配stdout
再次使用以下代码-
freopen("/dev/tty", "w", stdout); /*for gcc, ubuntu*/
Or -
freopen("CON", "w", stdout); /*Mingw C++; Windows*/
然而,类似的技术适用于 'stdin
'.