Benutzername durch char eingeben und bei Enter aus Schleife springen
-
Wahrscheinlich #include <windows.h>
Evtl. solltest Du noch ein
benutzer[i] = 0
hinter die for-Schleife schreiben, damit der String mit einer 0 terminiert wird (ansonsten steht da der Ascii-Code, der von der Entertaste produziert wurde).
-
Oh Gott, warum sehe ich hier immer öfter cin >> bla[i] ?
Das ist Blödsinn, man muss sich das nicht selber programmieren, istream liefert einem das doch mit:
char c[1000]; std::cin >> c;
Damit werden Zeichen eingegeben, bis man ENTER drückt.
MfG MAV
PS: Ist irgendwo ein Tutorial online, das den Weg so beschreibt, oder wieso kommen jetzt alle auf diese unnützen Ideen?
PPS: In C++ nutzt man selbstredend lieber string als char*, wenn es keine besondere Berechtigung für char* gibt (und Ausreden wie ,,die Funktion erwartet char'' zählen nicht).
-
Mis2com schrieb:
char c[1000]; std::cin >> c;
Damit werden Zeichen eingegeben, bis man ENTER drückt.
Nein. Damit werden nur Zeichen bis zum nächsten SPACE gelesen
Was du meinst ist
cin.getline(c, 1000);
-
Ja, du hast Recht, ich, öh, war hm...
total verwirrt wegen diesem grausamen Einzelzeicheneinlesecode.
-
Wie kann ich jetzt herrausfinden wieviel Zeichen eingegeben wurden
-
char*: strlen(var);
string: var.length();
-
Kannst du mir nicht ein genaues Beispiel machen komme mit dieser funktion überhaupt nicht zurecht
-
char a[1000]; std::cin >> a; std::cout << "Laenge: " << strlen(a);
bzw. besser:
char a[1000]; std::cin.getline(a, 1000); std::cout << "Laenge: " << strlen(a);
bzw. besser:
std::string str; std::cin.getline(str, 1000); std::cout << "Laenge: " << str.length();
bzw. ok.
-
Mis2com schrieb:
std::string str; std::cin.getline(str, 1000); std::cout << "Laenge: " << str.length();
bzw. richtiger
std::string str; std::getline(cin, str); std::cout << "Laenge: " << str.length();
dieses verdammte copy&paste, gell?
-
Oh, zu langsam. Naja, dann bleibt nur noch zu sagen, dass man das std:: vor getline() nicht braucht, wenn der Compiler ADL unterstützt - bei strlen hingegen braucht man es.
-
@Shade Of Mine:
Ne, hatte es ja neu eingetippt, das war die pure Unwissenheit.Oh, tut mir übrigens Leid mit den ganzen falschen Antworten, ich sollte vorher ganz sicher sein oder eben die Schnauze halten.