View Full Version : [C++] problema errore di compilazione
Salve, premetto che sono alle prime armi con questo linguaggio, in poche parole volevo creare un programma, che dovrebbe restituire un determinato risultato in base ad una stringa passata in input, ecco il sorgente:
#include <iostream>
using namespace std;
int main() {
char a;
char b = "alex";
cout << "inserisci il tuo username" << endl;
cin >> a;
if ( a = b) {
cout << "BENVENUTO UTENTE" << endl ; }
else {
cout << "hai digtato un usernamenon valido" << endl; }
}
il problema è che mi da errore e non me lo fa compilare, come posso fare?
grazie anticipatamente
Salve, premetto che sono alle prime armi con questo linguaggio, in poche parole volevo creare un programma, che dovrebbe restituire un determinato risultato in base ad una stringa passata in input, ecco il sorgente:
#include <iostream>
using namespace std;
int main() {
char a;
char b = "alex"; // char è un carattere solo non puoi assegnarli una stringa
cout << "inserisci il tuo username" << endl;
cin >> a;
if ( a = b) { // così assegni il valore di b ad a, nel tuo caso se vuoi un confronto dei usare ==
cout << "BENVENUTO UTENTE" << endl ; }
else {
cout << "hai digtato un usernamenon valido" << endl; }
}
il problema è che mi da errore e non me lo fa compilare, come posso fare?
grazie anticipatamente
:O
Ok quindi così dovrebbe funzionare:
#include <iostream>
using namespace std;
int main() {
char a;
string b = "alex";
cout << "inserisci il tuo username" << endl;
cin >> a;
if ( 'a' == 'b') {
cout << "BENVENUTO UTENTE" << endl ; }
else {
cout << "hai digtato un usernamenon valido" << endl; }
system ("PAUSE");
}
invece non funziona nemmeno ora, lo compila senza erori però qualsiasi cosa scrivo come input mi restituisce l' istruzione contenuta in else, dove sbaglio ora?
Ok quindi così dovrebbe funzionare:
#include <iostream>
using namespace std;
int main() {
char a;
string b = "alex"; //non devi includere string?
cout << "inserisci il tuo username" << endl;
cin >> a;
if ( 'a' == 'b') { //a e b non tra apici, altrimenti parli proprio dei caratteri 'a' e 'b' e non mi sembra il tuo caso
cout << "BENVENUTO UTENTE" << endl ; }
else {
cout << "hai digtato un usernamenon valido" << endl; }
system ("PAUSE"); //non usare system("pause") :cry: :cry:
}
invece non funziona nemmeno ora, lo compila senza erori però qualsiasi cosa scrivo come input mi restituisce l' istruzione contenuta in else, dove sbaglio ora?
:O
Finisce sempre nell'else perchè il carattere 'a' e il carattere 'b' non saranno mai uguali. Togli gli apici.
il problema è che se tolgo gli apici mi da questi errori:
14 C:\Documents and Settings\alex9\Desktop\a.cpp no match for 'operator==' in 'a == b'
18 C:\Documents and Settings\alex9\Desktop\a.cpp non-lvalue in assignment
son proprio rintronato...:muro: :muro: :muro: :muro: :muro:
questo è il sorgente giusto:
#include <iostream>
#include <string>
using namespace std;
int main() {
string a; // prima avevo dichiarato 'a' con char e naturalmente non potevo confrontare 'char' con 'string'
string b = "alex";
cout << "inserisci il tuo username" << endl;
cin >> a;
if ( a==b ) {
cout << "BENVENUTO UTENTE" << endl ; }
else {
cout << "hai digtato un usernamenon valido" << endl; }
system ("PAUSE");
return 0;
}
risolto, grazie comunque per l' aiuto;)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.