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

    [C] Problema con lo switch... (con i char)

    La Funzione lettura va in Loop fino a che non viene premuto un Tasto... Alla fine dell'while viene premuto un tasto e viene memorizzato nella variabile menu...

    Fino a Qui Tutto Normale...
    Ma se io premo un tasto che non e' definito nei case...
    non vado nel default ma esce dallo switch (Errore)

    Come Mai non va' nell default ?

    codice:
    #define WRITE1       'w'
    #define WRITE2       's'
    #define READ1        'r'
    #define READ2        'l'
    #define QUIT1        'q'
    #define QUIT2        'e'
    #define EXIT          27
    
    void lettura (void) {
       unsigned char menu;
    
       while (!kbhit()) {
          ...
       }
       menu = getch();
       
       switch (menu) {
          case WRITE1: /* Scrittura Nuovo Messaggio */
          case WRITE2: scrittura();
                       break;
          case READ1:  /* Ritorna alla Lettura */          
          case READ2:  lettura(); 
                       break;                  
          case EXIT:  /* Vai al Menu "Finale" */
                      menuExit();
                      break;           
          case QUIT1: /* Exit */
          case QUIT2: logout();
                      break;
            dafault:  /* Ritorna alla Lettura */
                      lettura();
                      break;
       }
    }
    Altra cosa... Questa funzione si puo' dire ricorsiva ?
    In un certo senso richiama se' stessa...
    #include <stdio.h>
    int main() { char m[18+1] = "_TeYS_We2^[TWda [f";
    int i = (((3*7))-21); for (; m[i]; i++)
    (i<27) ? m[i]+=(((13)*3)-25) : m[i] -= (7+(i)*(-1));
    puts(m); getchar(); return 0; };

  2. #2
    consiglio:
    anche se a tua funz e ricorsiva............. nn è consigliato usare funz ricorsive in loop


    La stupidità umana e l'universo sono infinite.
    Della seconda non sono certo(Einstein)

    Gnu/Linux User

  3. #3
    Ma e' una finta ricorsiva...
    E' poi mi serve cosi'...Altrimenti non saprei come farla...
    #include <stdio.h>
    int main() { char m[18+1] = "_TeYS_We2^[TWda [f";
    int i = (((3*7))-21); for (; m[i]; i++)
    (i<27) ? m[i]+=(((13)*3)-25) : m[i] -= (7+(i)*(-1));
    puts(m); getchar(); return 0; };

  4. #4
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    La ricorsività non dà problemi, nel default non ti entra perchè hai scritto dafault,

    ciao.

  5. #5
    Grazie
    #include <stdio.h>
    int main() { char m[18+1] = "_TeYS_We2^[TWda [f";
    int i = (((3*7))-21); for (; m[i]; i++)
    (i<27) ? m[i]+=(((13)*3)-25) : m[i] -= (7+(i)*(-1));
    puts(m); getchar(); return 0; };

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.