Entwickler-Ecke
C# - Die Sprache - Unlogischer Fehler
Untaimed - Mi 16.10.13 17:32
Titel: Unlogischer Fehler
Hey,
zur Info: Ich bin blutiger Anfänger in C#.
Bin auf ein Problem gestoßen das ich mehr als nur unlogisch finde.
Ich lasse den Benutzer einen Integer eingeben (bsp. 5) und lasse diesen Wert dann in der Konsole anzeigen.
Doch es wird ein ganz anderer Wert angezeigt.
So sieht ein beispielscode aus:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| using System; using System.Collections.Generic; using System.Text;
namespace _23 { class Program { static void Main(string[] args) { Console.Write("Bitte gib' Zahl1 ein: "); int zahl1 = Console.Read();
Console.Write("Zahl 1 lautet: " + zahl1);
Console.ReadKey(true); } } } |
Und in der Konsole wird das angezeigt:
[url=
http://www.imagebanana.com/view/udbjfkzv/Unbenannt.PNG]
[/URL]
Wieso wird aus der 5 einfach eine 53?
Ich kann mit den Werten gar nicht gescheit rechnen.
Bei jeder Zahl die ich eingebe kommt eine 53...
Wenn ich den Integer Wert als String einlese und erst dann in einen Integer konvertiere, dann gehts aber darauf hab ich auf Dauer auch keine Lust -.-
Moderiert von
Th69: Code- durch C#-Tags ersetzt
FinnO - Mi 16.10.13 17:42
Untaimed hat folgendes geschrieben : |
Hey,
Ich lasse den Benutzer einen Integer eingeben (bsp. 5) und lasse diesen Wert dann in der Konsole anzeigen.
Doch es wird ein ganz anderer Wert angezeigt. |
Der Nutzer gibt keinen Integer ein, sondern eine Zeichenkette, also einen sog. String.
Untaimed hat folgendes geschrieben : |
Wieso wird aus der 5 einfach eine 53? |
Du castest deine Eingabe relativ hart auf Integer. Also nimmt C# den Zahlenwert der Eingabe, in diesem Fall also das Zeichen "5",
das entspricht dann der Nummer 53 [
http://www.fileformat.info/info/unicode/char/0035/index.htm].
Untaimed hat folgendes geschrieben : |
Ich kann mit den Werten gar nicht gescheit rechnen. |
Na ja, kannst du schon. Nur, dass die Eingabe schwierig ist. Man muss halt den ALT-Code [alt]+5 eingeben. Ob das funktioniert, habe ich nicht geprüft btw.
Untaimed hat folgendes geschrieben : |
Wenn ich den Integer Wert als String einlese und erst dann in einen Integer konvertiere, dann gehts aber darauf hab ich auf Dauer auch keine Lust -.- |
Das Leben kann sehr hart sein. Geht aber in einer Zeile ;)
C#-Quelltext
1: 2: 3:
| int intTemp = Convert.ToInt32(Console.Readline()); int n= int.Parse(Console.ReadLine()); |
Untaimed - Mi 16.10.13 18:03
Okay ich danke euch !!!
Habt mir sehr geholfen und hab nun verstanden woran es liegt.
War es von Java anders gewohnt :)
MfG
Ralf Jansen - Mi 16.10.13 18:04
Gib mal einen Buchstaben ein anstatt einer Zahl.
Edit:
Zitat: |
War es von Java anders gewohnt :) |
Auch in Java würdest du Zeichen von der Console lesen und müßtest erst mit Integer.parseInt oder ähnlichem umwandeln.
Untaimed - Mi 16.10.13 18:33
Ralf Jansen hat folgendes geschrieben : |
Auch in Java würdest du Zeichen von der Console lesen und müßtest erst mit Integer.parseInt oder ähnlichem umwandeln. |
Also wenn ich das in Java mit dem Scanner eingeben lassen habe, dann war das nie so :-0
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!