Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - scelta menù di sistema , output errato
Forum - C/C++ - scelta menù di sistema , output errato

Avatar
Birkhoff92 (Normal User)
Rookie


Messaggi: 31
Iscritto: 27/03/2014

Segnala al moderatore
Postato alle 9:27
Mercoledì, 05/10/2016
salve, ho creato questo banale codice ma quando vado a premere r mi riporta sempre la scelta tra l, r e q mentre con l e q funziona come dovrebbe . Lo sto riguardando da 15 minuti e non riesco a vedere il problema dove risiede :/ Se qualcuno potesse aiutarmi.... grazie :)
Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2. using namespace std;
  3. int main(){
  4.         char c;
  5.         while(true){
  6.                 cout<<"MENU DI SISTEMA :"<<endl;
  7.                 cout<<" l: sinistra, r:destra, q:uscita"<<endl;
  8.                 cin>>c;
  9.                 if(c=='q')
  10.                         break;
  11.                 if( c=='l'){
  12.                         cout<<"Menu di sinistra "<<endl;
  13.                 cout<<"scegli a  o b ? ";
  14.                 cin>>c;
  15.                 if(c=='a') {
  16.                         cout<<"hai scelto a"<<endl;
  17.                         continue;
  18.                 }
  19.  
  20.                  if (c=='b'){
  21.                         cout<<"hai scelto b "<<endl;
  22.                         continue;
  23.                 }
  24.                  else {
  25.                         cout<<"non hai scelto ne a ne b"<<endl;
  26.                         continue;
  27.                 }
  28.                 if (c=='r'){
  29.                         cout<<"scelto menu di destra"<<endl;
  30.                         cout<<"scegli c o d? "<<endl;
  31.                         cin>>c;
  32.                         if (c=='c'){
  33.                                 cout<<"hai scelto c "<<endl;
  34.                                 continue;
  35.                         } if (c=='d'){
  36.                                 cout<<"hai scelto d "<<endl;
  37.                                 continue;
  38.  
  39.                         }
  40.                         else {
  41.                                 cout<<"non hai scelto ne c ne d "<<endl;
  42.                                 continue;
  43.                         }
  44.         }
  45.         cout<<"devi digitare l , r oppure q"<<endl;
  46.         }
  47.  
  48.         } cout<<"uscita dal menu "<<endl;
  49. }


PM Quote
Avatar
torn24 (Normal User)
Pro


Messaggi: 156
Iscritto: 04/01/2008

Segnala al moderatore
Postato alle 11:50
Mercoledì, 05/10/2016
Sono su telefono e non vedo bene. Ma mi pare che hai dimenticato la graffa } di chiusura del blocco if(c== l), per cui if(c==r) ne fa parte, porando risultati inattesi, dimmi se era l errore giusto.

PM Quote
Avatar
Birkhoff92 (Normal User)
Rookie


Messaggi: 31
Iscritto: 27/03/2014

Segnala al moderatore
Postato alle 10:17
Giovedì, 06/10/2016
si era quello ;) errore di distrazione :) grazie

Ultima modifica effettuata da Birkhoff92 il 06/10/2016 alle 10:21
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 11:54
Giovedì, 06/10/2016
Testo quotato

Postato originariamente da Birkhoff92:

errore di distrazione  



No, errore di cattiva indentazione ... se non indenti correttamente, capiterà nuovamente ...


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote