如何为用户添加输入内容的时间限制,否则它会继续
How to add a time limit for user to input something or else it goes on?
因为很长一段时间,我试图在c++中放置一个计时器,它实际上给出了一个有限的时间来输入任何东西,例如:-如果我输入
cout<<"Enter the name :-
cin>>name;
cout<<"Enter Phonenoe :- ";
cin>>phoneno;
那么在这个例子中,我如何添加5秒的时间来输入name,如果用户在5秒内没有输入任何东西,程序应该去输入phonenoe
给出完整的代码,我是一个初学者。
好吧,我被否决了。
我找到的最好的谷歌是在这里。简而言之,这在c++中很难做到,而且我认为不可能以可移植的方式做到。在汇编程序中,我会轮询最低级别的键盘中断(我认为9h),看看会发生什么,但那是在DOS的日子里,我不确定这是否还有效。
只是为了好玩。
#include <windows.h>
#include <iostream>
#include <string>
bool wait_for_key(int timeout_milliseconds, char& ch) {
HANDLE tui_handle = GetStdHandle(STD_INPUT_HANDLE);
DWORD tui_evtc = 0;
DWORD deadline = GetTickCount() + timeout_milliseconds;
INPUT_RECORD tui_inrec = { 0 };
DWORD tui_numread = 0;
while (GetTickCount() < deadline) {
if (tui_evtc > 0) {
ReadConsoleInput(tui_handle, &tui_inrec, 1, &tui_numread);
if (tui_inrec.EventType == KEY_EVENT) {
if (tui_inrec.Event.KeyEvent.bKeyDown) {
ch = tui_inrec.Event.KeyEvent.uChar.AsciiChar;
return true;
}
}
}
YieldProcessor();
GetNumberOfConsoleInputEvents(tui_handle, &tui_evtc);
}
return false;
}
int _tmain(int argc, _TCHAR* argv[])
{
HANDLE tui_handle = GetStdHandle(STD_INPUT_HANDLE);
std::string name;
std::string other;
std::cout << "name: ";
char ch;
if (wait_for_key(5000, ch)) {
std::cout << ch;
std::getline(std::cin, name);
name = ch + name;
std::cout << "name is '" << name.c_str() << "'" << std::endl;
} else {
std::cout << std::endl << "other: ";
std::getline(std::cin, other);
std::cout << "other is '" << other.c_str() << "'" << std::endl;
}
return 0;
}
相关文章:
- C++为构建时间获取QDateTime的可靠方法
- 从持续时间构造std::chrono::system_clock::time_point
- 循环后如何继续阅读
- 向量 <int> a {N, 0} 和 int arr a[N] = {0} 的时间复杂度有什么区别
- while循环中while循环的时间复杂度是多少
- 使用简单类型列表实现的指数编译时间.为什么
- 是否可以在编译时初始化数组,以便在运行时不会花费时间?
- 在已经使用Git的情况下减少编译时间
- 有没有一种方法可以创建一个带有哈希表的数据库,该哈希表具有恒定时间查找功能
- 如何将包含epoch时间的十六进制字符串转换为time_t
- 从文本文件中读取时钟时间和事件时间并进行处理
- 具有未知值时的时间复杂性
- 如何减少花费的时间
- 我正在尝试使用 c++ 创建一个货币转换程序,我不知道如何继续
- C++在变量给定的指定时间内关闭电脑
- 如何从一段时间返回继续
- 如何在嵌套的 for 循环中使用“继续一段时间”循环
- 在程序继续执行的同时,如何使代码的两部分之间存在时间间隔或延迟?C++
- 如何为用户添加输入内容的时间限制,否则它会继续
- 使用 <Windows.h> 暂停时间并继续执行其他功能的函数