Ist eine Minute schon vorbei ???
-
Danke newkid, hat super funktioniert !!!

-
Ich habe noch eine kleine Frage zur Berechnung. Warum berechnet er das nicht ?
case ID_CALC_TIMER : CString calc2 = m_calc+m_mon; GetDlgItem(IDC_CALC)->SetWindowText(calc2); break;Er berechnet m_calc + m_mon nicht ... warum ? Er gibt mir nie das berechnete aus
????Danke
-
preisfrage:
wie viel ist "ABCD" + "DCBA" ?
:pwas soll er da rechnen? ist doch ein string
-
Er sollte eigentlich nur den Inhalt (also die Zahlen) der Strings errechnen !
Oder soll ich keine String`s verwenden, lieber int`s ??
-
Wie soll ich das denn nun schreiben ??? CString`s addiert er nicht...Und mit dem ClassWizard kann ich keine int`s (etc.) erzeugen nur CString`s...

-
Was für eine Frage! Auf den kleinen Zeiger schauen

-
Sorry, aber deine Antwort hilft mir nicht sehr weiter ! Den einzigen Zeiger den ich sehe ist der von GetDlgItem

Das gibt es doch nicht, Ich sehe den Wald vor lauter Bäumen nicht

-
Wenn du einen INT brauc hst mit dem du Rechnen kannst aber nur einen CString hast dann wandle den CString in INT um. Stichwort
atoi(CString);
Und bitte jetzt nicht das ergebnis mit = dem CString zuweisen.
Dafür gibt es Format()
-
Ich hab das jetzt so geschrieben, aber es erscheint immer beim Ausführen ein Fehler :
case ID_CALC_TIMER : CString calc2; calc2.Format(atoi(m_calc) + atoi(m_mon)); GetDlgItem(IDC_CALC)->SetWindowText(calc2); break;Was mache ich falsch ?
Danke
:: NoName ::
-
Du must folgendes verwenden:
calc2.Format(_T("%d"), atoi(m_calc) + atoi(m_mon));Einen Blick in die MSDN darf man ruhig auch mal werfen...
-
Danke, hab das problem schon selber gelöst. Doch er rechnet die beiden Zahlen immernoch nicht zusammen ! Er gibt jetzt nur eine 0 aus ...
-
Hast du schon im debugger geschaut, wie der Inhalt der beiden Variablen aussieht?
Was liefert atoi zurück?
Teste mal so
int v1 = atoi(m_calc); int v2 = atoi(m_mon); calc2.Format(_T("%d"), v1 + v2);
-
Ist ein INT also
calc2.Format(_T("%i"), v1 + v2);Wenn etwas falschesa rauskommt solltest du mal schauen was in den CStrings drinsteht.
Dieser Code ist jedenfalls so richtig.
-
Also, es hat immernoch nicht geklappt. Ich habe m_mon und m_calc überprüft.
In m_mon und m_calc sind die richtigen Zahlen enthalten. Aber merkwürdig ist, dass in atoi(m_calc) und atoi(m_mon) nur jeweils eine 0 entahlten ist ! Egal wie ich es schreibe, ob Format oder nicht, ob "%d" oder "%i", es steht immer nur eine 0 in beide Variablen ! Und wenn ich es wie am Anfang schreibe :
m_mon + m_calc dann rechnet er die beiden Zahlen, die in den Variablen enthalten sind, nicht zusammen, sondern er schreibt dann 1,20 1,30 anstatt 2,50 ... Könnte es daran liegen, dass m_mon eine Edit-Box und m_calc ein Static-Text ist ??? An irgendetwas muss es ja liegen...
-
Also, es hat immernoch nicht geklappt. Ich habe m_mon und m_calc überprüft.
In m_mon und m_calc sind die richtigen Zahlen enthalten. Aber merkwürdig ist, dass in atoi(m_calc) und atoi(m_mon) nur jeweils eine 0 entahlten ist ! Egal wie ich es schreibe, ob Format oder nicht, ob "%d" oder "%i", es steht immer nur eine 0 in beide Variablen ! Und wenn ich es wie am Anfang schreibe :
m_mon + m_calc dann rechnet er die beiden Zahlen, die in den Variablen enthalten sind, nicht zusammen, sondern er schreibt dann 1,20 1,30 anstatt 2,50 ... Könnte es daran liegen, dass m_mon eine Edit-Box und m_calc ein Static-Text ist ??? Oder liegt es daran, dass ich Zahlen mit Kommatas verwende ??? An irgendetwas muss es ja liegen...
-
Es scheint das du Fließkommazahlen in deinen strings hast!
Dann geht das natürlich nicht. Benutze stattdessen folgendescalc2.Format(_T("%.2f"), atof(m_calc) + atof(m_mon));atof = ascii to float
%.2f = float format mit 2 Nachkommstallen
-
Wie soll ich das denn nun schreiben ??? CString`s addiert er nicht...Und mit dem ClassWizard kann ich keine int`s (etc.) erzeugen nur CString`s...
Ntürlich geht das!! Ist das ein Steuerelement?(Wo du m_calc einliest?)
-
Jetzt gibt er als Ergebnis 0,00 aus...
-
Zeig mal den ganzen Sourcecode und sag und genau was vor dem atoi in der Variable steht.
Der Code funktioniert so wenn du auch eine Zahl in den CStrings hast.
Bei INT eine INT Zahl oder bei double eine Fließkommazahl.Eine Fließkommazahl braucht aber einen Punkt: 12.23 und nicht 12,23
-
Stimmt, es lag daran, dass in m_mon und m_calc eine Zahl mit einem Komma und keinen Punkt enthalten war ! Sorry und danke für alles !!! Jetzt funtzt es
