Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 |
#include <iostream> using namespace std; int main() { char name[64]; cout << "Bitte geben sie ihren Namen ein: "; cin >> name; cout << "\n\n\nIhr name ist " << name; } |
C-/C++-Quelltext |
|
1 |
cin.get(name, 64);
|
Anonymous
unregistriert
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
#include <iostream> int main (void) { char buffer[64] = ""; std::cout << "Dein Name lautet: "; std::cin.getline (buffer, 64); std::cout << buffer; return 0; } // bzw. #include <iostream> #include <string> int main (void) { std::basic_string<char> buffer; std::cout << "Dein Name lautet: "; std::getline (buffer); std::cout << buffer; return 0; } |
Zitat von »"nix da"«
DaRich
std::cin.get (); == get????
cin arbeitet wie scanf?
Wo lebst Du? Das sind 2 verschiedene Welten!
Das eine arbeitet über Inputbuffer das andere Bruteforce! Und cin schneidet nicht das Leerzeichen ab, sonder verschiebt es in die nächste Inputbuffer-Zeile, weshalb man danach den Inputbuffer neu synchronisieren muss.
riCo
Vergiss es! Damit kommst Du in keinem anständigen C++ Programm durch!
Faule Socke
Wie schon gesagt verschiebt std::cin nach der Eingabe eines Leerzeichens die darauffolgenden Informationen in die nächste Zeile des Inputbuffers.
Damit das "verrutschen" der Input daten nicht passiert gibt es die Funktion "getline".
Kann man so benutzen:
C-/C++-Quelltext
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 #include <iostream> int main (void) { char buffer[64] = ""; std::cout << "Dein Name lautet: "; std::cin.getline (buffer, 64); std::cout << buffer; return 0; } // bzw. #include <iostream> #include <string> int main (void) { std::basic_string<char> buffer; std::cout << "Dein Name lautet: "; std::getline (buffer); std::cout << buffer; return 0; }
Aber versuch erst gar nicht den Müll von den beiden hier, das ist veraltester C-Quatsch und hat in einem C++ Programm nichts zu suchen. Nicht mal geschützt vor Pufferüberläufen sind die Dinger, absoluter stuss.
Werbeanzeige