Ausgabe Problem



  • Hallo ich versuche momentan einen Taschenrechner herzustellen
    jedoch hänge ich bei der Ausgabe des Ergebnisses fest.

    TCHAR TEXT[256];
    
    				GetWindowText(input1, TEXT, 256);
    				GetWindowText(input2, TEXT, 256);
    				zahl1 = (int)input1;//HWND input1; int zahl1;
    				zahl2 = (int)input2;//HWND input2; int zahl2;
    				ende = zahl1 + zahl2;//int ende;
    
    				letzte = (LPCSTR)ende;//HWND letzte
    
    				SetWindowText(factor3, letzte);
    				return (0);
    

    Das Problem es es wird dann nicht irgendeine Zahl als Ergebniss angezeigt sondern irgendwelche Chinsesichen Zeichen 😃 .



  • Was soll denn bei zahl1 = (int)input1; rauskommen? Du interpretierst ein Fenster als Zahl 😕
    Bei letzte = (LPCSTR)ende; interpretierst du eine Zahl in eine Zeichenkette um und weist sie dann einem Fenster zu. 😮
    Zahl != Fenster != Zeichenkette.
    Jetzt nimmst du alle Casts weg, alles wo (Typ) steht und machst es noch mal. Die Casts stellen zwar den Compiler ruhig, machen aber den Code nicht richtig.

    Zahl -> String: sprintf (bzw. wsprintf)
    String -> Zahl: sscanf (bzw. swscanf)
    Text aus Fenster: GetWindowText
    Text in Fenster: SetWindowText

    Du kannst nachsehen wie die Funktionen funktionieren, immer mit Erklärung und häufig mit Beispiel: MSDN



  • nwp3 schrieb:

    Was soll denn bei zahl1 = (int)input1; rauskommen? Du interpretierst ein Fenster als Zahl 😕
    Bei letzte = (LPCSTR)ende; interpretierst du eine Zahl in eine Zeichenkette um und weist sie dann einem Fenster zu. 😮
    Zahl != Fenster != Zeichenkette.
    Jetzt nimmst du alle Casts weg, alles wo (Typ) steht und machst es noch mal. Die Casts stellen zwar den Compiler ruhig, machen aber den Code nicht richtig.

    Zahl -> String: sprintf (bzw. wsprintf)
    String -> Zahl: sscanf (bzw. swscanf)
    Text aus Fenster: GetWindowText
    Text in Fenster: SetWindowText

    Du kannst nachsehen wie die Funktionen funktionieren, immer mit Erklärung und häufig mit Beispiel: MSDN

    Schön und gut, aber ne Lösung hast du auch nicht genannt 🙄



  • Kann man vielleich irgendwie die Eingabe als integer speichern?



  • Man kann Zeichenketten in Integer umwandeln (z.B. mit atoi/wtoi)
    Umgekehrt z.B. mit wsprintf
    Google dürfte da noch mehr zu bieten 😉



  • Taschenrechner schrieb:

    nwp3 schrieb:

    Was soll denn bei zahl1 = (int)input1; rauskommen? Du interpretierst ein Fenster als Zahl 😕
    Bei letzte = (LPCSTR)ende; interpretierst du eine Zahl in eine Zeichenkette um und weist sie dann einem Fenster zu. 😮
    Zahl != Fenster != Zeichenkette.
    Jetzt nimmst du alle Casts weg, alles wo (Typ) steht und machst es noch mal. Die Casts stellen zwar den Compiler ruhig, machen aber den Code nicht richtig.

    Zahl -> String: sprintf (bzw. wsprintf)
    String -> Zahl: sscanf (bzw. swscanf)
    Text aus Fenster: GetWindowText
    Text in Fenster: SetWindowText

    Du kannst nachsehen wie die Funktionen funktionieren, immer mit Erklärung und häufig mit Beispiel: MSDN

    Schön und gut, aber ne Lösung hast du auch nicht genannt 🙄

    Doch, hat er. Du verstehst sie nur nicht.



  • geeky schrieb:

    Man kann Zeichenketten in Integer umwandeln (z.B. mit atoi/wtoi)
    Umgekehrt z.B. mit wsprintf
    Google dürfte da noch mehr zu bieten 😉

    Vielen Dank.


Anmelden zum Antworten