Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Konvertieren und Rechnen über Childs

Empfohlene Antworten

Veröffentlicht

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

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

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

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.