Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [C++] una variabile non si azzera

    io ho un programma a consolle fornito di un menu
    codice:
    1)File 2)Modifica ... 0) Esci
    nel codice ho inserito uno switch tipo questo
    codice:
    inizio:
    int scelta;
    scanf("%d", & scelta);
    switch (scelta)
    	{
    	case 1:
    		{menufile(); // va al menu file
    		break;}
    	case 2:
    		{menumodifica(); // va al menu modifica
    		break;}
    	case 0:
    		{
    		fclose( fe ); // esce dal programma
    		fclose( fu );
    		remove("fu");
    		goto exit;
    		break;}
    	default:
    		{printf("\tscelta sbagliata\n");
    		goto inizio;
    		break;
    		}
    	}
    se si digita qualcosa di sbagliato (esempio 5) quando la variabile scelta è un numero si può ritentare se invece è un carattere lo scanf viene saltato e si ha un ciclo infinito.
    cosa devo fare????
    Peppe

  2. #2
    Non mi sono soffermato a vedere il codice, ma non mi piacciono quei goto..
    Perchè non provi con un impostazione di questo tipo ?

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
     int scelta=0;
        
      while ( (scelta=getch()-'0')!=0 )
          {
    
            switch (scelta)
            	{
            	case 1:
            		printf("Hai scelto %d \n" , scelta);
            		break;
            	case 2:
            		printf("Hai scelto %d \n" , scelta);
            		break;
            	case 0:
            		printf("Hai scelto %d \n" , scelta);
            		return 0;
            		break;
            	default:
            		printf("Scelta sbagliata\n");
            		break;
            		
            	}
          }
    
      system("pause");
      
    }
    Ci sono 10 tipi di persone al mondo, chi conosce il sistema binario e chi no.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.