2015-11-20 205 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