2015-11-20 276 views
-1

好吧,這是非常奇怪的...... 我正在爲我的這個類的最終項目工作,它有一系列的循環告訴程序根據用戶輸入做什麼。他們工作得很好。然後,我在其中一個循環內編寫了另一個循環,突然之間程序不能正常工作 - 這意味着我只是測試了一些簡單的東西,並且失敗了。我查了一下,並沒有對其他代碼進行編碼,所以我不認爲這是問題所在。我也嘗試過切換編譯器,但也沒有改變它。C++嵌套循環問題

這裏的問題是代碼與循環結構:

vector<Item*> inventory; 
string usrInptOptn = "default"; 
string usrInptOptn2 = "default"; 

while (true) { 
    // Get user choice 
    cout << "\nEnter (p)rint, (a)dd, (u)pdate, (r)emove, or (q)uit: "; 
    getline(cin, usrInptOptn); 

    // Process user choice 
    if (usrInptOptn.size() == 0) { 
     continue; 
    } 
    else if (usrInptOptn.at(0) == 'p') { 
     PrintInventory(inventory); 
    } 
    else if (usrInptOptn.at(0) == 'a') { 
     cout << "\nEnter (b)ook or (p)roduce: "; 
     getline(cin, usrInptOptn); 

     if (usrInptOptn2.at(0) == 'b') { 
      cout << "needs work..." << endl;   //Something fishy going on here... 
     } 
     else if (usrInptOptn2.at(0) == 'p') { 
      cout << "something isn't working here" << endl; 
      inventory = AddItemToInventory(inventory); 
     } 
    } 
    else if (usrInptOptn.at(0) == 'u') { 
     inventory = UpdateItemQtyInInventory(inventory); 
    } 
    else if (usrInptOptn.at(0) == 'r') { 
     inventory = RemoveItemFromInventory(inventory); 
    } 
    else if (usrInptOptn.at(0) == 'q') { 
     cout << "\nGood bye." << endl; 
     break; 
    } 
} 

任何幫助,將不勝感激這個! :D在此先感謝! -Danny

+0

凡碼說一節「工作需要......「或」某些東西在這裏不工作「是我測試它的地方,沒有任何東西是打印的,這主要是我知道它不工作的原因。 – Danny

+2

此行之前,您正在讀入usrInptOptn而不是usrInptOptn2 – DBug

+0

我沒有看到任何嵌套循環。 – developerbmw

回答

1

你做

getline(cin, usrInptOptn); 

,而不是

getline(cin, usrInptOptn2); 

因爲它代表的是心不是工作正在檢查「默認」一詞

+0

現在可行了......謝謝! XD – Danny