Je dois créer un menu qui contient des noms d'éléments, je peux le faire avec une boucle pour la boucle qui se termine jusqu'à ce que le maximum ait été atteint, mais comment puis-je le faire avec une boucle de travail qui continuera à demander jusqu'à ce que le max soit atteint Ou j'entre -1
J'ai essayé avec A pour une boucle et cela a fonctionné, mais je dois utiliser une boucle tandis que vous pouvez arrêter quand je le dis de s'arrêter. P>
#include <iostream> using namespace std; void read_in_menu(char menu_list[][50], float price_list[], int& num_menu_items, int MAX_MENU_ITEMS); int main() { const int MAX_MENU_ITEMS = 5; char menu_list[MAX_MENU_ITEMS][50]; float price_list[MAX_MENU_ITEMS]; int num_menu_items; read_in_menu(menu_list, price_list, num_menu_item, MAX_MENU_ITEMS); } void read_in_menu(char menu_list[][50], float price_list[], int& num_menu_items, int MAX_MENU_ITEMS) { for (int i = 0; i < MAX_MENU_ITEMS; i++) { cout << "Enter Names: "; cin.getline(menu_list[i], 20); } }
4 Réponses :
Chaque fois que vous souhaitez quitter une boucle, vous pouvez utiliser le mot-clé break code>.
for(int i = 0; i < MAX; i++){
if(i > 10){
break;
}
doWork();
}
Vous pouvez également utiliser break code> dans une boucle tandis que.
Vous pouvez transformer pour strud> p> tandis que fort> p> pour contrôler les boucles utilisez pour code> en boucle sur d'autres boucles. Par exemple:
Continuer code> et
break code> Mots-clés . Mot-clé
Continuer CODE> Ignorera l'itération actuelle de la boucle et
BREAK CODE> quittera la boucle. Celles-ci sont généralement conditionnées par
si code> instruction. P> p>
Si je comprends bien, quelque chose comme ça devrait fonctionner:
int i = 0; string input = ""; while(i < MAX_MENU_ITEMS) { cout << "Enter Names: "; cin.getline(input, 20); if(input == "-1") { break; } menu_list[i] = input; MAX_MENU_ITEMS++; }
Bonjour merci! J'ai pu comprendre avec un pointeur, mais je stockais -1 comme l'une des cordes également, le vôtre a résolu ce problème!
Je recommande un peu de nettoyage rapide: cin.getline (entrée, 20); code> ne compilera pas. Ce formulaire particulier de
getline code> n'accepte pas un
. STD :: String Code>
Menu_List [i] = Entrée; code> ne fonctionnera pas aussi. Vous ne pouvez pas affecter un
std :: chaîne code> à un tableau code> tableau code>. Utilisez
std :: getline code> et spécifier
std :: string code> tout au long de l'ensemble (option très supérieure) ou souffre de tout étant un tableau code> (Superyuck ).
J'ai pu l'obtenir avec un pointeur LOL.
void read_in_menu(char menu_list[5][20], float price_list[], int &num_menu_items, int MAX_MENU_ITEMS){ int i = 0; char *p = "-1"; while(i<MAX_MENU_ITEMS){ cout << "Enter Name" << endl; cin.getline(menu_list[i],20); if(strcmp(menu_list[i], p)){ i++; }else{ break; } } }