chen (Normal User)
Rookie
Messaggi: 54
Iscritto: 27/04/2008
|
Salve, da pochissimo mi sto cimentando nel c++, essendo abbastanza scarso in materia, o scaricato dal sito microsoft Visual c++ 2008.
Per provare un po o cercato di fare un codice che mette a confronto un valore con un altro se e uguale scatta un evento senno un altro..semplicissimo in vb6 ma in c++ aiuto!!:
Codice sorgente - presumibilmente C++ |
#include "stdafx.h" #include <iostream> int utente; int _tmain(int argc, _TCHAR* argv[]) { //x="admin"; std::cout << "Inserire la password " << std::endl; std::cin >> utente; if (utente == 112233){ std::cout << "Accesso consentito" << std::endl; } else { std::cout << "Accesso negato" << std::endl; } system("pause"); return 0; }
|
funziona tutto alla perfezione.
ma se per esempio volessi fare in modo che la password da inserire sia "prova", dopo aver dichiarato la variabile cosi:
Codice sorgente - presumibilmente C/C++ |
come si fa per "inserire" nella variabile pass la stringa "prova"?
in vb6 basta dichiarare la variabile e..:
Codice sorgente - presumibilmente C/C++ |
dim pass as string
pass="prova"
|
mentre se in c++ scrivo pass="prova" l' Ide mi da errore..grazie in anticipo |
|
gantonio (Normal User)
Guru^2
Messaggi: 1532
Iscritto: 09/09/2007
|
Il tipo char e' costituito da un solo carattere.
Se vuoi una stringa in C++ puoi scrivere
string pwd;
|
|
Amarath (Normal User)
Pro
Messaggi: 85
Iscritto: 08/05/2008
|
oppure lavorare con le stringa come puntatori a carattere e in questo modo puoi gestirti come ti pare e piace anche dinamicamente le stringhe.
char*
|
|
chen (Normal User)
Rookie
Messaggi: 54
Iscritto: 27/04/2008
|
salve,
GAntonio: se dichiaro la stringa in questo modo:
Codice sorgente - presumibilmente C/C++ |
mi da errore il compilatore, e sono sicuro che nn ci sono errori nel codice, visto che lo provata anche in un progetto vuoto..poi la parola "string" nemmeno la riconosce, cioe nn la evidenzia di blu.
Mentre se utilizzo
Codice sorgente - presumibilmente C/C++ |
char* pass;
...
...
...
pass="ciao";
std::cout << pass << std::endl;
|
noto che scrive proprio ciao quindi funziona correttamente.
Ma modificando il codice, in questo modo:
Codice sorgente - presumibilmente C++ |
#include "stdafx.h" #include <iostream> char* utente; char* pass; int _tmain(int argc, _TCHAR* argv[]) { system ("color a"); pass="ciao"; std::cout << "Inserire la password " << std::endl; std::cout << pass << std::endl; std::cin >> utente; if (utente == pass){ std::cout << "Accesso consentito" << std::endl; } else { std::cout << "Accesso negato" << std::endl; } system("pause"); return 0; }
|
mi da un errore "Debug Assertion Failed!" e dopo mi indica la linea:
Codice sorgente - presumibilmente Plain Text |
Come mai? ..dove sbaglio?..Grazie |
|
netarrow (Admin)
Guru^2
Messaggi: 2502
Iscritto: 12/05/2004
|
per usare la classe string devi includere l'header string e usare il namespace std, per non scrivere ogni volta std::string std::cin ecc... basta che fai subito sotto la lista degli include
using namespace std;
per quanto riguarda il fatto che string non è blu è normale, blu sono solo le parole chiave, string è il nome di una classe dello standard ansi.
|
|
chen (Normal User)
Rookie
Messaggi: 54
Iscritto: 27/04/2008
|
ok..grz..ma come si fa a mettere a confronto due char*?..o per lo meno perche e sbagliata la seguente sintassi:
Codice sorgente - presumibilmente Plain Text |
char* ciao;
cin >> ciao; //<---Sbagliata?
|
allora come si fa al posto di cin cosa metto???
Ultima modifica effettuata da chen il 15/06/2008 alle 19:56 |
|
gantonio (Normal User)
Guru^2
Messaggi: 1532
Iscritto: 09/09/2007
|
Ma se tu vuoi programmare in C++ perche' vuoi usare le stringhe del C?
In C++ si usa la classe string con cui potrai molto semplicemente fare i confronti con
string s;
...
if(s=="ciao") ...
Altrimenti, se vuoi programmare in C, non usare le varie cout cin e cosi' via ...
Ovviamente si possono usare ambedue le cose, ma se utilizzi il C++ e' bene usare quello che il C++ mette a disposizione.
Il tuo programma diventa
Codice sorgente - presumibilmente C++ |
#include "stdafx.h" #include <iostream> #include <string> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { string utente; std::cout << "Inserire la password : "; std::cin >> utente; if (utente == "password") { std::cout << "Accesso consentito" << std::endl; } else { std::cout << "Accesso negato" << std::endl; } system("pause"); return 0; }
|
|
|
chen (Normal User)
Rookie
Messaggi: 54
Iscritto: 27/04/2008
|
Grz x l'aiuto, e che sto facendo moolta confuzione perche nn ho una giuda e sto vedendo di qua e di la e cerco di adattare il codice che trovo alle mie esigenze e a capire i vari comandi e il loro funzionamenti scusa tanto e grazie di nuovo
|
|
gantonio (Normal User)
Guru^2
Messaggi: 1532
Iscritto: 09/09/2007
|
Non puoi imparare a programmare (specialmente in C++) senza un buon libro ...
Fai tu ...
|
|