If Else wird nicht beachtet!
-
Hallo,
habe heute erst mit C++ angefangen und habe direkt ein Problem#include <iostream>
using namespace std;
#include <cstdlib>int main() {
cout << "Passwort: "; int A; cin >> A; cout << "Passwort bestätigen: "; int B; cin >> B; if (A == B) cout << "Great!"; else cout << " I am sorry passworts do not match to another!"; system("PAUSE"); return 0;
}
Das ist mein code aber wenn ich ihn ausführe fragt er mich nach dem passwort und sobalt ich enter drücke wird einfach aller nachfolgender Cout hingeschrieben (außer der cout vom else) und ich soll eine beliebige taste drügen (wegen system('PAUSE')
Ich möchte allerding eins nach dem anderen haben xDKann mir da jemand helfen?
-
Willst Du Ganzzahlen als Passwort? xD
Wenn Du beim ersten
cin
etwas anderes als eine Zahl eingibst, dann wird kein Wert inA
gespeichert, dhA
bleibt uninitialisiert undcin
geht in den Fehlerzustand, was dazu führt, daß das zweitecin
sofort fehlschlägt. Was danach passiert ist purer Zufall, da auf die Werte der uninitialisiertenA
undB
zugegriffen wird, was Undefined Behaviour ist.
-
@Swordfish
Danke für die schnelle Anwort. Mit Zahlen funktioniert es...
Nur gibt es auch einen Weg Buchstaben als Passwort zu benutzen??
-
Einzelne Zeichen --> Datentyp
char
fürA
undB
,
Zeichenketten --> Datentypstd::string
aus<string>
fürA
undB
.Du solltest Dir angewöhnen, bei Benutzereingaben auf Fehler zu prüfen:
// ... int number{}; std::cin >> number; if( !std::cin ) { // handle input error } // ...
oder kompakter:
// ... int number{}; if( !( std::cin >> number ) ) { // handle input error } // ...
-
#include <iostream>
using namespace std;
#include <cstdlib>
#include <string>int main() {
cout << "Passwort: "; char A; A = getchar(); cout << "Passwort bestätigen: "; char B; B = getchar(); if (A == B) cout << "Perfekt!"<< endl; else cout << " Passwort stimmt nicht ueberein! Erneut versuchen!" << endl; system("PAUSE"); return 0;
}
Ähnliches Problem wie vorhin, die Überpfrüfung ist jetzt leider noch nicht dabei, funktioniert aber auch ohne schon nicht
-
Warum plötzlich
getchar()
?Wenn Du - Hausnummer - den Buchstaben
'x'
eingibst und danachEnter
drückst, dann ließt das erstegetchar()
das'x'
und das zweitegetchar()
ein'\n'
(Enter).Wass willst Du denn nu wirklich einlesen ... einzelne Buchstaben oder Zeichenketten?
Aja, schreib bitte über Deinen Code
```
und unter Deinen Code```
. Alternativ markiere Deinen Code und klicke auf</>
.
-
Eigentlich eine Zahlenkette aber ich wollte erstmal mit einem Buchstaben anfangen...
Naja wie gesagt totaler Anfänger.
-
Dieser Beitrag wurde gelöscht!
-
Okey habs geschafft!
mit Strings hats funktioniert vielen Dank!!
-
Wenn du mit den zahlen nicht rechnen willst, solltest du immer strings nehmen. Postleitzahlen und Telefonnummern sind neben Passwörtern gute Beispiele dafür.