Hvorfor kun et bogstav i char???

Tags:    c++ diverse

Jeg har, et sikkert ret dumt spørgsmål for de rutinerede C++ udviklere.
Hvorfor kan man kun indtaste et bogstav i char, fx.?

char bogstaver;

std::cin >> bogstaver; (indtastning test)
std::cout << bogstaver (output: t)

Altså kommer der kun det første bogstav ud, af det ord som man indtastede.
Her er den kode jeg har lavet, og her skulle de første indtastninger for variablerne user og pasw blive til hele ord, istedet for det første bogstav man indtaster.
#include <iostream>

int main()
{
char user;
char pasw;
char usna;
char pass;
//user variabel defineret som char.
std::cout << "Create Username:\\n";
//Her får Useren mulighed for at lave sit brugernavn.
std::cin >> user;
//Her sættes user til et navn.
std::cout << "Welcome " << user << " , please choose a Password\\n";
//Besked om at indtaste et password
std::cin >> pasw;
//Password indført.
std::cout << "Username: " << user << ". Password: " << pasw << ".\\n";
//Besked om Brugerens Password og username.
std::cout << "Rebooting....\\n";
//Besked om at computeren genstarter.
std::cout << "Hello again. Logon needed. Please type username: \\n";
//Besked om at brugeren bliver nød til at logge sig på, og brugeren skal indtaste brugernavn.
std::cin >> usna;
//Indtastning af et brugernavn. If checker om det er lig det registrede brugernavn.
if(user == usna)
{
std::cout << "Correct username, please type password: \\n";
//Besked om at brugernavnet var korrekt med det registrede.
std::cin >> pass;
//Indtastning af Password.
if(pass == pasw)
//If checker om det registrede er lig det indtastede password.
std::cout << "You have logged on the computer. Have nice day";
else
std::cout << "Wrong password. Well now trace your Ip.\\n";
}
else
std::cout << "Wrong username. Well now trace your IP.\\n";
return 0;
}




3 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
Fordi char kun kan indeholde ét tegn!
hvis du vil have flere bogstaver kan du f.eks skrive: char user[100];
Så er der plads til 100 tegn i variablen user.
Hilsen Chadi
Mit lykketal er 2959



Som CHadi nævnte er en char et bogstav. En tekststreng er en række (array) af bogstaver (char) som skrives:
char streng[100];

Men det er gammel C og bør ikke bruges i C++ programmer. Her bør du bruge C++ string objekter:

Fold kodeboks ind/udKode 




Jeg har, et sikkert ret dumt spørgsmål for de rutinerede C++ udviklere.
Hvorfor kan man kun indtaste et bogstav i char, fx.?

char bogstaver;

std::cin >> bogstaver; (indtastning test)
std::cout << bogstaver (output: t)

Altså kommer der kun det første bogstav ud, af det ord som man indtastede.
Her er den kode jeg har lavet, og her skulle de første indtastninger for variablerne user og pasw blive til hele ord, istedet for det første bogstav man indtaster.
#include <iostream>

int main()
{
char user;
char pasw;
char usna;
char pass;
//user variabel defineret som char.
std::cout << "Create Username:\\n";
//Her får Useren mulighed for at lave sit brugernavn.
std::cin >> user;
//Her sættes user til et navn.
std::cout << "Welcome " << user << " , please choose a Password\\n";
//Besked om at indtaste et password
std::cin >> pasw;
//Password indført.
std::cout << "Username: " << user << ". Password: " << pasw << ".\\n";
//Besked om Brugerens Password og username.
std::cout << "Rebooting....\\n";
//Besked om at computeren genstarter.
std::cout << "Hello again. Logon needed. Please type username: \\n";
//Besked om at brugeren bliver nød til at logge sig på, og brugeren skal indtaste brugernavn.
std::cin >> usna;
//Indtastning af et brugernavn. If checker om det er lig det registrede brugernavn.
if(user == usna)
{
std::cout << "Correct username, please type password: \\n";
//Besked om at brugernavnet var korrekt med det registrede.
std::cin >> pass;
//Indtastning af Password.
if(pass == pasw)
//If checker om det registrede er lig det indtastede password.
std::cout << "You have logged on the computer. Have nice day";
else
std::cout << "Wrong password. Well now trace your Ip.\\n";
}
else
std::cout << "Wrong username. Well now trace your IP.\\n";
return 0;
}





Syntes lige jeg skulle blande mig:

Der kan kun være et bogstav/tegn i en char, fordi en char "kun" er 8-bit lang. men det er altså mulig at skriv 255 tal i een char. I en alm. char kan tallene -128 til 127 bruges men i en unsigned char kan kun bruges positive tal dvs. fra 0 til 355.





t