Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Visual c++ 2008 assegnare valore a char
Forum - C/C++ - Visual c++ 2008 assegnare valore a char

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
chen (Normal User)
Rookie


Messaggi: 54
Iscritto: 27/04/2008

Segnala al moderatore
Postato alle 0:40
Domenica, 15/06/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++

  1. #include "stdafx.h"
  2. #include <iostream>
  3. int utente;
  4.  
  5. int _tmain(int argc, _TCHAR* argv[])
  6. {
  7. //x="admin";
  8.     std::cout << "Inserire la password " << std::endl;
  9.         std::cin >> utente;
  10. if (utente == 112233){
  11.        
  12. std::cout << "Accesso consentito" << std::endl;
  13. }
  14.         else    {
  15. std::cout << "Accesso negato" << std::endl;
  16. }
  17.         system("pause");
  18.    return 0;
  19. }


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++

  1. char pass;


come si fa per "inserire" nella variabile pass la stringa "prova"?
in vb6 basta dichiarare la variabile e..:
Codice sorgente - presumibilmente C/C++

  1. dim pass as string
  2. pass="prova"


mentre se in c++ scrivo pass="prova" l' Ide mi da errore..grazie in anticipo;)

PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 9:07
Domenica, 15/06/2008
Il tipo char e' costituito da un solo carattere.

Se vuoi una stringa in C++ puoi scrivere

string pwd;

PM Quote
Avatar
Amarath (Normal User)
Pro


Messaggi: 85
Iscritto: 08/05/2008

Segnala al moderatore
Postato alle 13:48
Domenica, 15/06/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*

PM Quote
Avatar
chen (Normal User)
Rookie


Messaggi: 54
Iscritto: 27/04/2008

Segnala al moderatore
Postato alle 15:29
Domenica, 15/06/2008
salve,
GAntonio: se dichiaro la stringa in questo modo:
Codice sorgente - presumibilmente C/C++

  1. string pwd;


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++

  1. char* pass;
  2. ...
  3. ...
  4. ...
  5. pass="ciao";
  6. std::cout << pass << std::endl;


noto che scrive proprio ciao quindi funziona correttamente.
Ma modificando il codice, in questo modo:

Codice sorgente - presumibilmente C++

  1. #include "stdafx.h"
  2. #include <iostream>
  3.  
  4. char* utente;
  5. char* pass;
  6. int _tmain(int argc, _TCHAR* argv[])
  7. {
  8.         system ("color a");
  9.         pass="ciao";
  10.     std::cout << "Inserire la password " << std::endl;
  11.           std::cout << pass << std::endl;
  12.           std::cin >> utente;
  13.                 if (utente == pass){
  14.        
  15.                 std::cout << "Accesso consentito" << std::endl;
  16.                 }
  17.                 else    {
  18.                 std::cout << "Accesso negato" << std::endl;
  19.                 }
  20. system("pause");
  21. return 0;
  22. }



mi da un errore "Debug Assertion Failed!" e dopo mi indica la linea:
Codice sorgente - presumibilmente Plain Text

  1. std::cin >> utente;



Come mai?:-?..dove sbaglio?..Grazie:k:

PM Quote
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Segnala al moderatore
Postato alle 19:06
Domenica, 15/06/2008
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.



Mai memorizzare quello che puoi comodamente trovare in un libro.
Imparare è un'esperienza; tutto il resto è solo informazione.
L'immaginazione è più importante della conoscenza.
(A. Einstein)


Esistendo poi google...
PM Quote
Avatar
chen (Normal User)
Rookie


Messaggi: 54
Iscritto: 27/04/2008

Segnala al moderatore
Postato alle 19:52
Domenica, 15/06/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

  1. char* ciao;
  2. 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
PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 20:16
Domenica, 15/06/2008
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++

  1. #include "stdafx.h"
  2.  
  3. #include <iostream>
  4. #include <string>
  5.  
  6. using namespace std;
  7.  
  8. int _tmain(int argc, _TCHAR* argv[])
  9. {
  10.         string utente;
  11.        
  12.         std::cout << "Inserire la password : ";
  13.     std::cin >> utente;
  14.  
  15.         if (utente == "password")
  16.         {
  17.                 std::cout << "Accesso consentito" << std::endl;
  18.         }
  19.     else    
  20.         {
  21.                 std::cout << "Accesso negato" << std::endl;
  22.         }
  23.  
  24.         system("pause");
  25.         return 0;
  26. }


PM Quote
Avatar
chen (Normal User)
Rookie


Messaggi: 54
Iscritto: 27/04/2008

Segnala al moderatore
Postato alle 20:21
Domenica, 15/06/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:k:

PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 20:29
Domenica, 15/06/2008
Non puoi imparare a programmare (specialmente in C++) senza un buon libro ...

Fai tu ...

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo