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