Oppure

Loading
14/06/08 22:40
chen
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!!;):
#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:
char pass;

come si fa per "inserire" nella variabile pass la stringa "prova"?
in vb6 basta dichiarare la variabile e..:
dim pass as string
pass="prova"

mentre se in c++ scrivo pass="prova" l' Ide mi da errore..grazie in anticipo;)
aaa
15/06/08 7:07
gantonio
Il tipo char e' costituito da un solo carattere.

Se vuoi una stringa in C++ puoi scrivere

string pwd;
aaa
15/06/08 11:48
Amarath
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*
aaa
15/06/08 13:29
chen
salve,
GAntonio: se dichiaro la stringa in questo modo:
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
char* pass;
...
...
...
pass="ciao";
std::cout << pass << std::endl;

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

#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:
	  std::cin >> utente;



Come mai?:-?..dove sbaglio?..Grazie:k:
aaa
15/06/08 17:06
netarrow
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.
aaa
15/06/08 17:52
chen
ok..grz..ma come si fa a mettere a confronto due char*?..o per lo meno perche e sbagliata la seguente sintassi:
char* ciao;
cin >> ciao;  //<---Sbagliata?

allora come si fa al posto di cin cosa metto???
Ultima modifica effettuata da chen 15/06/08 17:56
aaa
15/06/08 18:16
gantonio
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

#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; 
} 
aaa
15/06/08 18:21
chen
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:
aaa