Zum Inhalt springen

Konvertieren und Rechnen über Childs


3tiXoz

Empfohlene Beiträge

Hi,

ich hoffe die Überschrift war richtig gewählt^^

Mein Problem:

ich habe ein Label und eine Editbox.

In dem Label steht eine Zahl (zB 200) und in die Editbox kann man irgendeine Zahl eingeben.

Nun soll die eingegebene Zahl von der Labelzahl subtrahiert werden und das neue Ergebniss soll in das Label geschrieben werden. Für die Berechnung muss ich jedoch beides in int's konvertieren und danach wieder in ein char um es in das Label zu schreiben.

	switch (wParam)

			{

			// Wurde Submit angeklickt?

			case ID_SUBMIT:

				{

					// Berechnung für Punktzahl


					char szUzahl[200]; // Zahl die im Label steht

					char szInZahl[200];//Eingegebene Zahl

					char szErgebniss[200];

					int InZahl = 0;

					int Uzahl = 0;

					int Ergebniss = 0;


// Zahl aus dem Label holen (hPoints) und in szUzahl speichern


					GetWindowText (hPoints, szUzahl, 200);

// Das selbe mit der eingegebenen Zahl


					GetWindowText (hPktBox, szInZahl, 200);


// Beide chars in int umwandeln, berechnen und in int Ergebniss speichern


					InZahl = atoi(szUzahl);

					Uzahl = atoi(szUzahl);


					Ergebniss = Uzahl - InZahl;


// Dann wieder konvertieren um es mit SetWindowText auszugeben


					itoa(Ergebniss, szErgebniss, 200);


					SetWindowText (hPktBox, szErgebniss);


					return (0);



				}

Wenn ich jetzt jedoch eine Zahl in die Box schreibe und den Button "Submit" klicke kommt nicht das Ergebniss in das Label sondern immer 0.

Wo ist jetzt das Problem? In der Berechnung? Denn ohne funktioniert es super. Bsp. ich schreibe die 2 in die Box und klcike Submit. In dem Label erscheint die 2. Wenn ich es mit rechnung mache erscheint jedoch immer nur die 0^^

Hoffe ihr könnt mir helfen.

Gruss

3tiXoz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Du berechnest InZahl und Uzahl beide aus szUzahl. Dann kann bei der Subtraktion ja nur 0 herauskommen ;)

Hey,

Ups. Ja stimmt xD Habs jetzt geändert:

// Beide chars in int umwandeln, berechnen und in int Ergebniss speichern


					InZahl = atoi(szInZahl);

					Uzahl = atoi(szUzahl);


					Ergebniss = Uzahl - InZahl;


// Dann wieder konvertieren um es mit SetWindowText auszugeben


					itoa(Ergebniss, szErgebniss, 200);


					SetWindowText (hPktBox, szErgebniss);


					return (0);

Allerdings sind die Ergebnisse die ich jetzt bekomme ganz verrückt^^ Manchmal wird das Ergebniss auch nur als irgendwelche Zeichen ausgegeben^^

Bsp: 200 - 3 = ''*#####2 o.ä.^^

Gruss

3tiXoz

Link zu diesem Kommentar
Auf anderen Seiten teilen

So hab noch einen Fehler gefunden und zwar hab ich die Werte aus den falschen Childs eingelesen^^ Aber trotzdem wird mir mein Ergebniss nicht richtig angezeigt. Wenn zB in dem Label 501 steht und ich tippe 2 ein und klicke submit, dann kommt nicht die 499 im Label sonfern J^^ :confused:

Weiss jetzt garnich wo der fehler sein kann. Höchstens dann vllt in der "Re"Konvertierung mit itoa.

Weiss einer von euch vllt eine lösung? Weil ich muss das ja als char in das Child per SetWindowText() setzen und kann das Ergebniss ja nicht in int lassen?!

Gruss

3tiXoz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Der dritte Parameter von itoa ist nicht die Größe des Stringpuffers, sondern die Basis des gewünschten Zahlensystems. Wenn im String die dezimale Repräsentation des Wertes stehen soll, muss da also eine 10 hin.

Super jetzt funktioniert es auch ^^

Dachte wirklich das der dritte Parameter für den Stringpuffer ist:upps

Danke für die Hilfe, Problem ist damit gelöst^^

Gruss

3tiXoz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...