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

    Primi passi C++ mi serve una mano.

    Ciao a tutti, sono nuovo del forum e vi ringrazio in anticipo per il contributo che il html.it e questo forum mi danno da molto tempo.
    introduco dicendo che da pochissimo ho iniziato ad interessarmi a C++ dopo che un mio amico mi ha prestato un suo vecchio libro delle superiori. Ho iniziato a dare una letta e a provare a fare qualcosina.
    Oggi avevo progettato questo piccolissimo programma (1 domanda di vero o falso).
    Avevo intenzione di farlo funzionare così :

    Mi viene mostrata sulla console una domanda, io digito V o F , premo invio e saprò se ho fatto giusto o meno.

    avevo scritto questo codice:

    codice:
    #include <iostream>
    #include <cstdio>
    #include <string.h>
    using namespace std;
    
    
    int main()
    {
    	string Vero;
    	string Falso;
    	string Risposta;
    	
    	Vero="V";
    	Falso="F";
    	
    	
    	
       
        cout<<"\nDomanda n.1:\nLa cina e' lo stato piu' esteso del mondo."<<endl;
        
    	scanf("%1s",&Risposta);
         
    	    if (Risposta == Falso){
        
    
    
        	cout<<"Risposta Esatta"<<endl;
        }
         
             else if (Risposta == Vero){
        
        
            cout<<"Risposta Errata"<<endl;
    }
         	else {
    	
    	
        	cout << "Risposta non Valida!"<<endl; 
    }
    
    
    }
    Eseguo il file, digito Falso ma il compilatore mi scrive "Risposta non valida!" ovvero quello che volevo fosse mostrato se il valore assegnato a Risposta non fosse V o F.
    è molto probabile sia una stupidaggine data la mia ignoranza in materia.
    vi prego di aiutarmi a capire dove sbaglio
    Grazie in anticipo a tutti

  2. #2
    Non puoi usare le std::string con scanf, o usi un array di char o usi gli stream C++. In ogni caso, è tutto sicuramente spiegato nei capitoli successivi del tuo libro di C++.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Veramente grazie per le dritte. Sono andato più avanti sfogliando un poco e ho trovato tutto il necessario ho scritto il codice in questo modo:

    codice:
    #include <iostream>
    #include <cstdio>
    
    
    using namespace std;
    
    
    
    
    
    
    
    
    int main()
    {
    	char Vero = 'V';
    	char Falso= 'F';
    	
    	char Risposta;
    	
    	
    	
    	
    	
       
        cout<<"\nDomanda n.1:\nLa cina e' lo stato piu' esteso del mondo."<<endl;
        
    	scanf("%1c",&Risposta);
         
    	    if (Risposta == Falso){
        
    
    
        	cout<<"Risposta Esatta"<<endl;
        }
         
             else if (Risposta == Vero){
        
        
            cout<<"Risposta Errata"<<endl;
    }
         	else {
    	
    	
        	cout << "Risposta non Valida!"<<endl; 
    }
    
    
    
    
    }
    Ora funziona... se ci sono altre cose che volete consigliarmi ve ne sarò grato

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Quote Originariamente inviata da turtwig996 Visualizza il messaggio
    se ci sono altre cose che volete consigliarmi ve ne sarò grato
    Tieni presente che non necessariamente si risponde con F ... è possibile anche che l'utente usi la f minuscola ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5

    infatti...

    Quote Originariamente inviata da oregon Visualizza il messaggio
    Tieni presente che non necessariamente si risponde con F ... è possibile anche che l'utente usi la f minuscola ...
    ho risolto con...

    codice:
    if (Risposta=='F' || Risposta == 'f') {
    
    ....
    }
    grazie

  6. #6
    Lo stesso vale per 'v', ma invece di fare il doppio caso per tutti, limitati a rendere la lettera minuscola prima dei test usando la funzione tolower().
    Amaro C++, il gusto pieno dell'undefined behavior.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.