有没有办法强迫cin提交?

时间:2013-12-15 05:24:37

标签: c++ auto cin enter

例如,如果用户即将使用cin函数输入内容,但过了一段时间后,它会强制用户按下enter键,而不会实际按Enter键,以便结束cin功能。

  1. Cin正在等待用户完成。
  2. 另一个线程调用一个bool值,表示cin必须结束。
  3. 即使用户没有完成输入,Cin也需要自行输入。

2 个答案:

答案 0 :(得分:2)

enter键的功能由shell程序实现,而C ++标准库没有定义对它的任何控制。您需要发送一些进程间信号来获取shell,或输出到cin(在Unix上,由文件描述符1标识)的任何内容,以刷新其输出。

在Posix系统上提供交互式文本界面的常用方法是ncurses,但我还没有看到它与iostream一起使用。 (好吧,我根本不熟悉诅咒。)

答案 1 :(得分:-2)

我做了一些挖掘并找到了办法!

#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/