[C++] Dubbio su valore cin

Mr.Cobra

Nuovo Utente
66
1
Sta facendo un programma è ho un dubbio. Voglio capire se io in questa cin inserisco da tastiera false mi cambia il valore della variabile prova? Oppure me la legge come stringa e quindi genera errori? Devo inserire una t o una f o 0 e 1? come devo fare?
C++:
bool prova=true;

cout<<"inserisci il valore: \n";
cin>>prova;
 

_Achille

Utente Èlite
3,065
722
CPU
Intel i5-6600K @4.6 GHz
Dissipatore
Cryorig H5
Scheda Madre
ASRock Z170 Extreme 6
Hard Disk
WesternDigital 1TB & Crucial MX200 250GB
RAM
Corsair Ven 16GB DDR4 2133MHz
Scheda Video
Sapphire RX 580 Nitro+
Monitor
Dell S2418H
Alimentatore
RM550X
Case
NZXT S340
Periferiche
Anne Pro 2, Razer Abyssus
Sistema Operativo
Windows 10 Pro
Non funzionerà.
Quella che tu chiami è uno dei tanti operatori istream& operator<<(istream&, ...) dove il secondo parametro è un bool. Quell’operatore ha solo un modo di leggere l’input, ovvero in modo numerico.

Ma non è impossibile fargli accettare true e false, basta dargli in pasto il manipolatore boolalpha a cin e tratterà così solo ed esclusivamente true e false.
 
  • Mi piace
Reactions: Mr.Cobra

Mr.Cobra

Nuovo Utente
66
1
Non funzionerà.
Quella che tu chiami è uno dei tanti operatori istream& operator<<(istream&, ...) dove il secondo parametro è un bool. Quell’operatore ha solo un modo di leggere l’input, ovvero in modo numerico.

Ma non è impossibile fargli accettare true e false, basta dargli in pasto il manipolatore boolalpha a cin e tratterà così solo ed esclusivamente true e false.
Purtroppo non posso usarlo perchè non lo abbiamo fatto nel programma quindi devo giocare solo sull'algoritmo? Cioè se nel buffer è presente una stringa "true" allora mi imposta true la mia variabile prova. Mica mi passeresti qualche link con tutti questi operatori che voglio studiarmeli per conto mio?
Post automaticamente unito:

Solo un ultimo dubbio con il costruttore non ho alcun problema giusto? Solo con gli stream di input ho problemi?
C++:
 Attivita::Attivita(const int P, const char *D,const bool S): PID(P) : Started(S) { set_Descrizione(D); }
    Attivita::Attivita(const Attivita &A): PID(A.PID) :Started(A.Started) { set_Descrizione(A.Descriione) }
    
    void Descrizione(const char * D){
        Descrizione= new char [strlen(D)+1];
        strcpy(Descrzione,D);
    }
Se io nel main inizializzo un oggetto Attivita così
C++:
Attivita A(1321, Salto, true);
non ho alcun problema?
 
Ultima modifica:

_Achille

Utente Èlite
3,065
722
CPU
Intel i5-6600K @4.6 GHz
Dissipatore
Cryorig H5
Scheda Madre
ASRock Z170 Extreme 6
Hard Disk
WesternDigital 1TB & Crucial MX200 250GB
RAM
Corsair Ven 16GB DDR4 2133MHz
Scheda Video
Sapphire RX 580 Nitro+
Monitor
Dell S2418H
Alimentatore
RM550X
Case
NZXT S340
Periferiche
Anne Pro 2, Razer Abyssus
Sistema Operativo
Windows 10 Pro
Purtroppo non posso usarlo perchè non lo abbiamo fatto nel programma quindi devo giocare solo sull'algoritmo? Cioè se nel buffer è presente una stringa "true" allora mi imposta true la mia variabile prova. Mica mi passeresti qualche link con tutti questi operatori che voglio studiarmeli per conto mio?
Post automaticamente unito:

Solo un ultimo dubbio con il costruttore non ho alcun problema giusto? Solo con gli stream di input ho problemi?
C++:
Attivita::Attivita(const int P, const char *D,const bool S): PID(P) : Started(S) { set_Descrizione(D); }
    Attivita::Attivita(const Attivita &A): PID(A.PID) :Started(A.Started) { set_Descrizione(A.Descriione) }
 
    void Descrizione(const char * D){
        Descrizione= new char [strlen(D)+1];
        strcpy(Descrzione,D);
    }
Se io nel main inizializzo un oggetto Attivita così
C++:
Attivita A(1321, Salto, true);
non ho alcun problema?
Beh sono i soliti operatori che utilizzi con gli stream, non c'è nulla da studiare...
Se vuoi che cin ti legga true come bool ti basta questo:
C++:
#include <iomanip>
...
std::cin >> std::boolalpha >> boolean;

Se io nel main inizializzo un oggetto Attivita così
C++:
Attivita A(1321, Salto, true);
non ho alcun problema?
Beh se Salto è una altra variabile stringa definita OK. E comunque non capisco perché utilizzare le const char* invece delle string e string_view...
 
  • Mi piace
Reactions: Mr.Cobra

Entra

oppure Accedi utilizzando

Discussioni Simili

Hot del momento