freopen( "in.txt ", "r ", stdin);
freopen( "out.txt ", "w ", stdin);
但并不存在一个完全兼容的解决方案能够在以后将标准句柄恢复。在C标准库里面是没有办法的。
很容易想到的方式是重新打开标准控制台设备文件,但遗憾的是,这个设备文件的名字是操作系统相关的。
在DOS/Win中,这个名字是CON,因此可以使用 :
freopen( "CON ", "r ", stdin)
在linux中,控制台设备是 /dev/console.
C++ :
freopen( "/dev/console ", "r ", stdin)