所以當我選擇讓我們先說選項1。所以Active Directory,然後選擇選項3將用戶添加到組。它要求輸入用戶名。所以沒關係。但是,當我輸入用戶名時,它會一遍又一遍地顯示菜單,而不是提示組添加它們。我在很久以前就沒有碰過C++,而且我從來沒有過得很好。但只是尋求一些建議。也許甚至更好的菜單系統。開關無意循環
void ActiveDirectoryMenu()
{
do
{
cout << "\n1. Active Directory clean up\n2. Copy over use permissions";
cout << "\n3. Add user to group\n4. Reset user password\n5. Enable - Disable account\n";
cin >> tempChoice;
switch (tempChoice) {
case 1:
ActiveDirectoryCleanUp();
break;
case 2:
cout << "Execute copy";
break;
case 3:
ActiveDirectoryAddGroup();
break;
case 4:
cout << "Specify username: ";
cin >> tempUser;
cout << "\nDefault password: ";
cin >> temp;
break;
case 5:
cout << "Specify username: ";
cin >> tempUser;
cout << "\n1. Enable\n2. Disable\n";
cin >> tempChoice;
}
}
while (tempChoice != 6);
}
void ExchangeMenu()
{
}
void ActiveDirectoryCleanUp()
{
cout << "Executing AD clean up....";
}
void ActiveDirectoryAddGroup()
{
cout << "Specify user: ";
cin >> tempUser;
if (tempUser == "") {
cout << "\nSpecify group: ";
cin >> tempGroup;
} else {
cout << "Please enter valid user" << endl;
}
}
看不到任何你說的無限循環的原因 - 你在循環體的第三行提示輸入,所以它至少應該暫停。確保你正在檢查你的輸入;你永遠不能確定用戶將輸入一個數字而不是一堆字符(或者他們永遠不會輸錯數字並且不小心添加一個字符到最後) – AndyG
循環將運行,只要用戶不會在執行之前從菜單中選擇的動作之後,請勿輸入「6」。 –