2
我有一些问题与cin。当我输入一个字符而不是一个整数时,cin不起作用,之后我甚至不能输入新的值。我该怎么办?我已经试过fflush(stdin)cin在我的程序中无法正常工作。我该如何解决它?
struct PersonList
{
Person person;
PersonList* personListPtr;
};
void addPerson(PersonList*& ptr, int position);
void deletePersonList(PersonList* ptr);
int main()
{
PersonList* personListPtr = NULL;
int flag = 0;
int pos = 0;
int i;
while(flag != 27)
{
system("cls");
cout << "1 - add objects\n"
<< "2 - delete objects\n"
<< "ESC - exit\n";
switch(flag)
{
case '1':
cout << "Enter position: ";
**cin >> pos;**
addPerson(personListPtr, pos);
break;
case '2':
break;
case '3':
break;
}
flag = _getch();
}
deletePersonList(personListPtr);
return 0;
}
谢谢。
看起来你应该在'switch'语句之前进行输入,但不是。如果您不提示用户使用它,您的应用程序如何知道要执行哪个菜单选项? –
除非偶然'flag'包含三个字符之一,否则他会掉过开关。 (它对我来说并不是很明显,他想要做什么,但我怀疑他需要像ncurses这样的东西,还有更多的代码来实现它。) –
起初flag == 0 – Vorgin