【发布时间】:2011-10-22 21:54:47
【问题描述】:
这种情况很可能是不可能的,因为我在任何地方都没有发现这种行为,但我很好奇是否有人有任何技巧来完成这样的事情。是否可以在用户实际敲击回车提交数据之前确定程序的标准输入缓冲区的内容?
我正在尝试这样做,因为我已经构建了一个简单的终端聊天程序,它可以将消息从一个终端发送到另一个终端以便于通信。我们遇到的问题是,由于传入消息和传出消息一起出现在终端中,如果用户在从另一端接收到消息时正在键入消息,它会扭曲显示并将键入的消息附加到新的末尾收到的消息。如果有办法检查缓冲区的内容并采取相应措施会很方便,但我不确定如果没有 gui 类型的接口级别,这是否可能。
【问题讨论】:
-
您的问题不是关于标准输入,而是关于阅读 tty。这是两个非常不同的事情。查看 ncurses。
-
感谢您的澄清,这确实是我想要做的,我会检查 ncurses 功能。
-
稍微扩展一下威廉的评论:c 该语言没有缓冲输入的概念,标准库也没有。因此,如何处理可能缓冲的输入取决于提供给您的系统。