有没有办法迫使cin屈服
Is there a way to force cin to submit?
例如,如果用户将要使用cin函数输入某些内容,但过了一段时间后,它会强制用户按enter键,而用户实际上没有按回车键,从而结束cin函数。
- Cin正在等待用户完成
- 另一个线程调用一个bool值,该值表示cin必须结束
- 即使用户没有完成输入,Cin也需要按原样输入
回车键的功能由shell程序实现,C++标准库没有定义对它的任何控制。您需要发送一些进程间信号来获取shell,或者任何输出到cin
(在Unix上,由文件描述符1标识)的信号,以刷新其输出。
在Posix系统上提供交互式文本界面的常用方法是ncurses,但我还没有见过它与iostreams一起使用。(嗯,我对诅咒一点也不熟悉。)
我四处挖掘,找到了一种方法!
#include <windows.h>
INPUT input;
memset(&input,0,sizeof(input));
input.type = INPUT_KEYBOARD;
input.ki.wVk=VkKeyScanA('n');
SendInput(1,&input,sizeof(INPUT));
input.ki.dwFlags=KEYEVENTF_KEYUP;
SendInput(1,&input,sizeof(INPUT));
它会刺激回车键或换行。
如图所示http://www.dreamincode.net/forums/topic/153423-simulate-keyboard-press/
相关文章:
- C++中的cin.ignore()函数不适用于整个流
- 在while循环中输入带有std::cin的字符串后,控制台会输出大量胡言乱语
- Problems with std::cin.fail()
- 由cin中的字符串中未捕获空白引起的分割错误
- 在C++中使用Cin,我如何在1行中输入
- 将 cin 限制为只有一个
- cin >> int 给定一个字符串将 int 赋值为 0
- istream std::cin如何修改自定义istream缓冲区
- C++ 将 CIN 值存储到任何类型的数组中
- 为什么无论你输入什么,这"while(cin.get(str,3))"只运行一次?
- cin 的十进制输入验证?
- Turbo C++ cin() 不能与 gets() 一起使用
- 使用 cin 时接受小数点后的 2 位数字
- 在 std::getline 和 std::cin 期间卡在循环中
- 我无法在Visual Studio代码中使用CIN输入答案,它说输入您的年龄,但它说只读文本编辑器如何解决这个问题?
- 为什么我的两个 cin 语句没有在程序结束时运行?
- C++ cin.ignore() 跳过循环
- CIN是逻辑1还是0?
- 如何运行多行 cin?
- 有没有办法迫使cin屈服