我正在使用C ++制作库管理系统。我的问题是每当我调用getFName()成员函数时,如果用户输入错误的first_name(包含123,%@等),Validate()函数将返回true和MessageBoxA()(在Windows中)。将调用h头文件但我有两个问题:
1)如果我按下Enter键,MessageBox应该消失但是它不能。需要鼠标点击OK按钮。如何在此问题中使用Enter键而不是鼠标单击?
2)如果用户按任何字母数字键,它将在MessageBox存在时计为下一个first_name。
我的预期输出是,如果显示MessageBox,则不应允许用户输入first_name,直到它按下MessageBox()函数中的OK按钮。
void Person :: getFName()
{
Again :
cout<<endl<<"Enter Your First Name : ";
getline(cin,F_Name);
if(Validate(F_Name))
{
int ch = MessageBoxA(NULL,"InValid First Name","C++Error",MB_OK);
goto Again;
}
试试这个:
int ch = MessageBoxA(GetConsoleWindow(),"InValid First Name","C++Error",MB_OK);
这应该使消息框模块化为控制台窗口,并且不允许任何输入。