Oppure

Loading
24/12/13 20:59
rob
Ho creato una struct e vorrei far si che: se un elemento della struttura è uguale a una scritta data in input allora accade una determinata cosa.
Esempio:


struct esempio{
char scritta[32];
}

cin >> scritta[32];

n = 0;

if (scritta[32] == 'ciao'){
n = 10;
} 


Perchè in quell' if mi da l'errore?

Il codice non è scritto perfettamente, lo so, ma è per dare l'idea!

Grazie...
Ultima modifica effettuata da rob 24/12/13 21:01
aaa
24/12/13 22:00
Poggi Marco
Ciao!

Una struct è un tipo di dato. Di conseguleza non puoi scrivere direttamente l' istruzione cin >> scritta[32] ;
Devi dichiarare un' istanza di esempio, a cui accedere a scritta.

Nell' if, la notazione è sbagliata: indichi la stringa ciao tra singoli apici, come se fosse un singolo carattere.
Per il confronto delle stringhe ci sono le apposite funzioni: cplusplus.com/reference/cstring/
aaa
25/12/13 10:58
nessuno
Aggiungo che, dato che scrivi in C++, non ha senso usare gli array di char del C per le stringhe.

Utilizza gli oggetti di classe string e potrai anche fare a meno delle funzioni di confronto delle stringhe del C.
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
26/12/13 11:36
rob
Non ho capito... non ho trovato niente da nessuna parte!

in poche parole se un nome dato in input è uguale a un altro che si trova in una struct allora succede qualcosa... tipo (più semplicemente):

if (Info[10].lavoratore == nome){

[...]

}


dove nome e Info[10].lavoratore sono variabili di tipo char

8-|
Ultima modifica effettuata da rob 26/12/13 11:37
aaa
26/12/13 12:45
nessuno
Postato originariamente da rob:
non ho trovato niente da nessuna parte!


Questo è impossibile.

Il problema è che tu non hai idea delle basi minime del linguaggio e per questo fai un bel po' di confusione.

Tutta questa roba sta nei primi capitoli di un libro di C/C++ quindi è da quei capitoli che dovresti iniziare.

Quando scrivi Info[10] ti stai riferendo ad un vettore di strutture (all'elemento 10).
Il campo lavoratore e nome non possono essere char ma array di char.
Se sono array di char, come ti è stato detto, NON puoi usare == ma devi utilizzare la funzione strcmp
Se stai lavorando in C++ non ha senso usare gli array di char, ma come detto, utilizza le string
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
26/12/13 12:55
rob
Perfetto!
Grazie ;)
aaa