Istruzioni IF

di il
5 risposte

Istruzioni IF

Ciao! Ho un problemma e devo correggere un programmino che ho creato. Praticamente visto che le variabili di tipo stringa salvano sia numeri che lettere,
devo fare un'istruzione if che praticamente mi fa questo lavoro : Se l utente inserisce un numero esegui queste istruzioni ; Se invece l utente inserice una parola esegui quest'altre istruzini. altrimenti stampa un errore.

Oppure se sapete anche un altro metodo efficace aiutatemi per favore.

5 Risposte

  • Re: Istruzioni IF

    Prova a postare il codice che hai in mente e poi dopo di che posso darti una mano...
  • Re: Istruzioni IF

    giammo ha scritto:


    Prova a postare il codice che hai in mente e poi dopo di che posso darti una mano...
    Scrivo il codice qui:
    #include<iostream>
    #include<string>
    using namespace std;
    int main()
    {
    	string anno, nome, mese;
    	cout << "In quale anno e' Alessio ?"<<endl;
    	cin >> anno;
    	
    	cout << "In quale mese e' nato Alessio ?"<<endl;
    	cin >> mese;
    	if( /*Se l'utente inserisce nella stringa "mese" il mese in formato di numero ESEMPIO: 01(gennaio), 12(dicembre)*/ ) 
    	{
    		//fai queste operazioni
    	}else if( /*Se nella stringa invece di un numero l'utente inserisce una parola, quindi usa le lettere ESEMPIO: "gennaio", "dicembre"*/ )
    	{
    		//fai queste operazioni
    	}else if( /*Se l'utente inserisce sia lettere che numeri*/ ) 
    	{
    		//stampa un errore
    	}
    	
    	
    return 0;
    }
    Ho aggiunto il codice specificando come dovrebbe essere implementata la funzione if. Io penso che si può fare con if ma se sai un'altro medoto va bene lo stesso. Ringrazio in anticipo
  • Re: Istruzioni IF

    Un modo potrebbe essere memorizzare in due array, nel primo tutti i mesi in formato letterale, nell'altro (sempre di tipo string) in formato numerico, e poi cercare la stringa inserita in entrambi, ciascuno in un if. Se non lo trovi in nessuno dei due, vai nel terzo if.
    es:
    
    string mese_literal[] = {"gennaio", "febbraio"}; //ecc...
    string mese_num[] = {"01","02"}; //ecc...
    if(/*trovato in mese_literal*/){
    //...
    }
    else if(/*trovato in mese_num*/){
    //...
    }
    else{
    //errore
    }
    
    Anche se secondo me il modo migliore è chiedere il mese solo in formato numerico.
  • Re: Istruzioni IF

    Utilizzando la libreria <limits> si può controllare l'immissione nello stream Cin per esempio in questo caso il programma nel ciclo while viene eseguito finche non si inserisce un valore di tipo int:
    #include<iostream>
    #include<conio>
    #include<limits>
    
    using namespace std;
    
    void main() {
     int n=0;
     clrscr();
     while(cout<<"Scrivi un numero di tipo int: " && !(cin>>n)) {
      cout<<"Questo non e' un numero, premi un tasto per continuare";
      cin.clear();
      cin.ignore(numeric_limits<streamsize>::max(), '\n');
      getch();
      clrscr();
     }
    
     cout<<"Hai scritto: "<<n;
     getch();
    }
    Puoi modificare il programma per controllare se viene inserita una stringa oppure un int in base a quello crei delle strutture if e fai quello che vuoi tu.
  • Re: Istruzioni IF

    Perfetto, graziee
Devi accedere o registrarti per scrivere nel forum
5 risposte