Autor Beitrag
krampus
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Mo 29.09.08 20:58 
hi, ich hab mir heute einen rechner programmiert, der einfach nur 2 zahlen addieren soll.
doch das problem ist, dass das ergebnis falsch ist! und wenn ich statt ner zahl nen buchstabe eingebe kommt trotzdem ein ergebnis O.o

wenn ich mit der "int"-funktion einen 1er eingebe, den speichern lasse und dann wiedergeben lasse, kommt 49 dabei raus O.o
ich bitte um hilfe und hinweiße wie ich das ändern kann, dass die rechnungen stimmen!

der code:
ausblenden volle Höhe 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:
31:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int zahl1;
            int zahl2;
            int erg;
            Console.WriteLine("Rechner");
            Console.WriteLine("**********************");
            Console.Write("Gib eine Zahl ein: ");
            zahl1 = Console.Read();
            Console.ReadLine();
            Console.WriteLine("");
            Console.Write("Gib noch eine Zahl ein: ");
            zahl2 = Console.Read();
            Console.ReadLine();
            Console.WriteLine("");
            erg = zahl1 + zahl2;
            Console.Write("Das ergebnis lautet: ");
            Console.WriteLine(erg);
            Console.ReadLine();
        }
    }
}



mfg krampus ;)

Moderiert von user profile iconChristian S.: Code- durch C#-Tags ersetzt
Einloggen, um Attachments anzusehen!
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mo 29.09.08 21:22 
:welcome:
Read liest nur ein einzelnes Zeichen und gibt dir dessen Unicode-Wert zurück. Versuch es lieber mal mit ReadLine (-> String) in Verbindung mit int.(Try)Parse ;) .

_________________
>λ=
krampus Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Mo 29.09.08 21:27 
also soll ich oben zb "int.TryParse zahl1;" eingeben?
ich kenne mich noch nicht so gut aus, da ich ein anfänger bin...
und wenn ich statt dem read wo er die eingabe lesen soll readline eingebe, dann kommt folgende meldung wenn ich die maus drüber halte: "Eine implizierte Konvertierung vom Typ "string" in "int" ist nicht möglich."
Flitzs
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 123
Erhaltene Danke: 7

Win7 x64/86 WinServer 2008 R2 x64
C#/C++/C VS2010
BeitragVerfasst: Mo 29.09.08 21:41 
Hey,
Wenn du dir mal die Parameter ansiehst die die Funktion Int.TryParse() benötigt, siehst du das zahl1 wohl nicht ganz passt.

int int.Parse(string s) wäre wohl eher passend
bool int.TryParse(string s, out in result) kannst du benützen wenn du nicht sicher bist ob s auch wircklich ein int ist.

Da beide Methoden sind werden diese so aufgerufen: int.Parse(Eingabe); und nicht int.Parse Eingabe;

Zitat:
und wenn ich statt dem read wo er die eingabe lesen soll readline eingebe, dann kommt folgende meldung wenn ich die maus drüber halte: "Eine implizierte Konvertierung vom Typ "string" in "int" ist nicht möglich.


Das liegt daran das Read() dir den Unicode-Wert (also auch ein int) eines Zeichens (der nicht z.B. bei dem Zeichen "2" auch wirklich 2 ist) zurückgibt aber eben nur ein Zeichen du willst aber die ganze Zahl und nicht nur ein Zeichen (Drum funktioniert das auch wenn du einen Buchstaben eingibst, da diese auch einen int-Unicodewert haben).

Versuchs einfach mit ReadLine() und int.Parse() / int.TryParse().

mfg Flitzs
krampus Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Mo 29.09.08 21:54 
oh mann ich blick das einfach nicht das is mir fürn anfang noch zu hoch...
könntest du mir das bitte mal an meinem quellcode zeigen?
ich habs schon versucht, aber ich schaffs einfach nicht!

mfg krampus
Flitzs
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 123
Erhaltene Danke: 7

Win7 x64/86 WinServer 2008 R2 x64
C#/C++/C VS2010
BeitragVerfasst: Mo 29.09.08 22:24 
Hey, auch wenn es nicht üblich ist Quellcode zu posten:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
string zahl1;
            string zahl2;
            int erg;
            Console.WriteLine("Rechner");
            Console.WriteLine("**********************");
            Console.Write("Gib eine Zahl ein: ");
            zahl1 = Console.ReadLine();            
            Console.WriteLine("");
            Console.Write("Gib noch eine Zahl ein: ");
            zahl2 = Console.ReadLine();            
            Console.WriteLine("");
            erg = int.Parse(zahl1) + int.Parse(zahl2);
            Console.Write("Das ergebnis lautet: ");
            Console.WriteLine(erg);
            Console.ReadLine();


Allerdings empfehler ich dir, lieber (nochmal) die Grundlagen zu c# durchzugehen (z.B. in so nen Openbook (z.B. das hier www.galileocomputing...nbook/visual_csharp/ )).

mfg Flitzs