Ciao ragazzi, Vi dico subito che non sono molto esperto con il C o il C++ , diciamo che sono quasi alle prime armi.
Ho scritto un programma che tramite una funzione menù consente di scegliere fra 6 opzioni e per ogni opzione ho scritto una funzione con uno switch(scelta).
Il programma funziona correttamente e avevo previsto un do-while per ripetere il programma da capo nel caso sia necessario . La condizione del do-while la inserivo sempre come int cioè facevo una scanf che permetteva di inserire i valori 0 o 1 rispettivamente per terminare il programma o ripartire da capo. In questo modo funziona ma se voglio sostituire la i valori 0 o 1 con 'S' o 'N' (char) il programma mi ripete sempre "reinserisci la scelta" (indifferentemente dal valore che immetto) . Come posso fare per far si che funzioni con S o N ?
Siccome non credo di essermi spiegato molto bene , vi incollo di seguito il programma principale che contiene (nelle ultime righe) la condizione del do-while .

codice:
main(){ int scelta,scelta2=0,scelta3=0;
        char flag; 
        do{ 
        system("cls");
        scelta=menu();
        switch(scelta){ 
                        case(1):  
                                 numeri_primi();
                                 break;
                        case(2): 
                                 numeri_perfetti();
                                 break;
                        case(3): 
                                 numeri_abbondanti();
                                 break;
                        case(4): 
                                 numeri_amici();
                                 break;
                        case(5): 
                                 do{ numeri_coprimi();
                                     do{
                                         printf("Ricominciare ? [1=Si][0=No]: ");
                                         scanf("%d",&scelta2);}
                                     while((scelta2<0)||(scelta2>1));}
                                 while(scelta2==1);
                                 break;
                        case(6): 
                                 do{ numeri_felici();
                                     do{
                                         printf("ricominciare ? [S/N]: ");
                                         scanf("%d",&scelta3);}
                                     while((scelta3<0)||(scelta3>1));}
                                 while(scelta3==1);
                                 break;}
                                 
         do{ printf("vuoi tornare al menu ? S/N: ");
             getchar();
             scanf("%c",&flag);             
             }while((flag!='S')||(flag!='N'));
        }while(flag=='S');
        }