2015-11-20 2 views
-1

Ok, c'est assez bizarre ... Je travaille sur mon projet final pour cette classe, et il a une série de boucles qui indiquent au programme ce qu'il doit faire en fonction de l'entrée de l'utilisateur. Ils ont très bien travaillé. J'ai ensuite codé une autre boucle dans l'une des boucles, et tout d'un coup le programme ne fonctionne pas - ce qui signifie que je l'ai juste testé quelque chose de simple et qu'il échoue lamentablement. J'ai vérifié, et je ne l'ai pas codé différemment des autres boucles, donc je ne pense pas que ce soit le problème. J'ai également essayé de changer de compilateur, et cela n'a pas changé non plus.Problème de boucle imbriquée C++

est ici le code de problème avec la structure en boucle:

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; 
    } 
} 

Toute aide serait appréciée pour cela! : D Merci d'avance! -Danny

+0

Lorsque le code dit « a besoin de travail ... "ou" quelque chose ne fonctionne pas ici "est l'endroit où je l'ai testé, et rien ne s'imprime, ce qui est surtout la façon dont je sais que ça ne marche pas. – Danny

+2

La ligne avant, vous lisez en usrInptOptn au lieu de usrInptOptn2 – DBug

+0

Je ne vois pas de boucles imbriquées. – developerbmw

Répondre

1

Tu as fait

getline(cin, usrInptOptn); 

au lieu de

getline(cin, usrInptOptn2); 

En l'état actuel de la section qui nest pas de travail est de vérifier le mot "default"

+0

Cela fonctionne maintenant ... Merci! XD – Danny