C# mit Benutzereingabe rechnen?
Hallo Allerseits,
ich arbeite in C# zurzeit am Rechnen mit Benutzereingaben. Dabei bin ich gleich zu Beginn auf ein Problem gestoßen..
Und zwar wenn ich vom Benutzer einen Integer einlesen möchte (z.B. 3) und dann einen zweiten Integer erstelle und diesem den Wert des ersten zuweise, dann ist der Wert des zweiten ein völlig anderer (z.B. 51 statt 3).
Hier Bilder zur Verdeutlichung:
Ausgabe:
Muss ich den eingelesenen Integer in irgenwas konvertieren oder wo liegt hier das Problem?
PS: Nicht die erste Zeile der Ausgabe beachten. Dies gehört noch zu einer anderen Aufgabe.
.
HABE JETZT DIE LÖSUNG:
Benutzereingaben werden in C# IMMER als String eingelesen!
Ich hätte string eingabe = ReadLine(); schreiben müssen!
4 Antworten
Ich bin jetzt kein C#-Experte, aber mit C kenne ich mich ganz gut aus.
Es liegt mit Sicherheit nicht an der Zuweisung an einen zweiten Int. Vermutlich liest Console.Read() nur ein Zeichen und keine Zahl. 51 ist übrigens der Ascii-Code des Zeichens '3'.
Du hast leider nicht gelesen, was die Funktion macht. Die gibt dir den ASCII Code des eingegebenen Zeichens zurück.Da ist die 3 eben 51, die 0 48 usw.
Versuch mal:
int eingabe = Convert.ToInt32(Console.ReadLine());
int eingabeKopie = eingabe;
Console.WriteLine(eingabeKopie);
Müsste eigentlich klappen.
Und wo lag das Problem? Interessehalber
Sorry bin da schon raus, hättest mich mal vor Monaten fragen müssen :D
Hat sich doch nicht erledigt. Dachte ich hätte:
int eingabe = Convert.ToInt32(Console.Read());
schreiben müssen aber das tut überhaupt nix zur Sache..
Ich hab vor ein paar Monaten programmiert und hätte es glaub ich so gemacht (ein Versuch ist es wert, kann falsch sein):
string Eingabe = Console.Read();
int eingabeKopie = ConvertToInt32(Eingabe);
Cw(EingabeKopie);