【发布时间】:2012-09-26 10:28:45
【问题描述】:
我认为这很简单,但显然不适合我!
我有一个控制台应用程序。我需要从键盘读取输入,但stdin 已被重定向到一个文件。那么如何创建一个指向键盘流的文件句柄,我可以与fgets 等一起使用?
我发现ttyname(0) 似乎是我在 POSIX 环境中寻找的东西,而我在这里没有。我在带有标准 Visual Studio 编译器的 Windows 系统中。
有什么想法吗?提前谢谢你。
【问题讨论】:
-
ttyname函数在 POSIX 环境中没有帮助,因为当输入来自管道或重定向文件时,它会返回NULL。 -
stdin has been redirected to a file.- 你为什么不fclose那个文件指针和freopen标准输入到一个新文件。完成后,再次将标准输入重定向到旧文件。 -
在某种程度上,这就是我想做的 nav_jan,但如果我不知道控制台的路径,我无法使用
fopen或freopen打开它。如果我有那个路径,我不需要重定向stdin。我可以为键盘输入创建另一个句柄,并独立使用文件输入和键盘输入。不过谢谢你的想法。
标签: c file stream keyboard stdin