当stdin设置为C中的文件时,如何从键盘读取

当stdin设置为C中的文件时,如何从键盘读取,第1张

概述我觉得这很简单,但显然不适合我! 我有一个控制台应用程序.我需要从键盘读取输入,但stdin已被重定向到文件.那么如何创建一个指向键盘流的FILE-Handle,我可以将其用于fgets等? 我发现ttyname(0)似乎是我在POSIX环境中寻找的东西,我在这里没有.我在使用标准Visual Studio编译器的Windows系统中. 有任何想法吗?先感谢您. 没有简单/可移植的方式来判断键盘是 我觉得这很简单,但显然不适合我!

我有一个控制台应用程序.我需要从键盘读取输入,但stdin已被重定向到文件.那么如何创建一个指向键盘流的file-Handle,我可以将其用于fgets等?

我发现ttyname(0)似乎是我在POSIX环境中寻找的东西,我在这里没有.我在使用标准Visual Studio编译器的Windows系统中.

有任何想法吗?先感谢您.

解决方法 没有简单/可移植的方式来判断键盘是否存在(您的应用程序可能是从终端仿真器从串行端口,telnet会话或其他任何东西运行).如果键盘确实存在(包括触摸屏上的键盘图片),那么你无法真正告诉键盘在到达你的应用程序之前需要通过多少层软件(例如击键可能来自一个键盘驱动程序到输入法编辑器到GUI到shell到你的应用程序).这意味着尝试直接从键盘驱动程序或某些东西获取击键是一个坏主意,几乎在所有情况下都会失败.

解决问题的最佳方法是找出导致STDIN首先被重定向的设计失败系列.

例如;也许应用程序应该有一个命令行选项来读取文件中的一些数据;这样应用程序可以从文件中获取一些数据,一些来自STDIN(如果命令行选项不存在,则从STDIN获取所有数据).

总结

以上是内存溢出为你收集整理的当stdin设置为C中的文件时,如何从键盘读取全部内容,希望文章能够帮你解决当stdin设置为C中的文件时,如何从键盘读取所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/langs/1230519.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-06
下一篇2022-06-06

发表评论

登录后才能评论

评论列表(0条)

    保存