eyra
Grünschnabel
Hallo C++ Community
Ich bin mir gerade ein bisschen C++ am beibringen und hab schon etliche Probleme selbst und Dank Hilfe dieses Forums bewältigt, nun bin ich jedoch an einen Fehler geraten wo ich nicht mehr weiter weiss. Vielleicht kann mir ja jemand von euch helfen
- Win XP
- VC++ 6
- MFC
Ich codiere mir zu Übungszwecken einen kleinen simplen Taschenrechner. Das Problem an der ganzen Sache sind wohl die Datentypen, weil meine Anzeige in Strings angezeigt wird ^^
Die Eingabe der Zahlen erfolgt über Buttons und wenn diese mehrmals angeklickt werden, dann hängen sich auch die Zahlen hintereinander wie sie eigentlich sollten. Die Ausrechnung funktioniert auch
ABER (hehe) wenn ich eine weitere Zahl mit strcat an den String hänge, erscheint folgende Fehlermeldung beim Klick auf den Gleich-Button

Mein Code sieht folgendermassen aus:
Und hier noch der Code um die Zahlen aneinander zu hängen:
Ich hoffe ihr kommt bei meinem Programmierchaos einigermassen draus und wäre natürlich dankbar für jede kleinste Anregung/Hilfe ..
Und wenn ich schon gerade hier reinschreibe, vielleicht kann mir jemand einen Tipp geben wie ich in einem Editfeld mehrere Einträge einzeln nach und nach auf mehrere Zeilen schreiben kann?
Vielen Dank
Mit freundlichem Gruss
Christine
Ich bin mir gerade ein bisschen C++ am beibringen und hab schon etliche Probleme selbst und Dank Hilfe dieses Forums bewältigt, nun bin ich jedoch an einen Fehler geraten wo ich nicht mehr weiter weiss. Vielleicht kann mir ja jemand von euch helfen

- Win XP
- VC++ 6
- MFC
Ich codiere mir zu Übungszwecken einen kleinen simplen Taschenrechner. Das Problem an der ganzen Sache sind wohl die Datentypen, weil meine Anzeige in Strings angezeigt wird ^^
Die Eingabe der Zahlen erfolgt über Buttons und wenn diese mehrmals angeklickt werden, dann hängen sich auch die Zahlen hintereinander wie sie eigentlich sollten. Die Ausrechnung funktioniert auch
ABER (hehe) wenn ich eine weitere Zahl mit strcat an den String hänge, erscheint folgende Fehlermeldung beim Klick auf den Gleich-Button

Mein Code sieht folgendermassen aus:
Code:
/***************** Funktionsmember CRechnerView::OnBgleich ****************/
void CRechnerView::OnBgleich()
{
int resultat;
char * temp;
char buffer[10];
CString str;
char * strneu;
char * bla;
switch (m_anzeige2[0]) //ASCII Wert
{
case '+': resultat = atoi(m_anzeige1) + atoi(m_anzeige3);
break;
case '-': resultat = atoi(m_anzeige1) - atoi(m_anzeige3);
break;
case '/': resultat = atoi(m_anzeige1) / atoi(m_anzeige3);
break;
case '*': resultat = atoi(m_anzeige1) * atoi(m_anzeige3);
break;
}
temp = _itoa(resultat, buffer, 10);
UpdateData(TRUE);
m_anzeige4 = m_anzeige1+" "+m_anzeige2+" "+m_anzeige3+" = "+temp+"\r\n";
m_anzeige1 = "";
m_anzeige2 = "";
m_anzeige3 = "";
UpdateData(FALSE);
}
/******************************* Ende Funktion ****************************/
Und hier noch der Code um die Zahlen aneinander zu hängen:
Code:
/****************** Funktionsmember CRechnerView::anzeige *****************/
void CRechnerView::anzeige()
{
char buffer[10];
char * temp;
m_Tastestr = _itoa(m_Taste, buffer ,10);
if (m_anzeige2 == "")
{
if (m_anzeige1 == "")
{
m_anzeige1 = m_Tastestr;
}
else
if (m_anzeige1 != "")
{
temp = (char*)LPCTSTR(m_anzeige1);
strcat(temp, m_Tastestr);
}
}
if (m_anzeige2 != "")
{
if (m_anzeige3 == "")
{
m_anzeige3 = m_Tastestr;
}
else
if (m_anzeige3 != "")
{
temp = (char*)LPCTSTR(m_anzeige3);
strcat(temp, m_Tastestr);
}
}
if (m_anzeige1 == "")
{
if (m_anzeige2 != "")
{
}
}
UpdateData(FALSE);
}
/******************************* Ende Funktion ****************************/
Ich hoffe ihr kommt bei meinem Programmierchaos einigermassen draus und wäre natürlich dankbar für jede kleinste Anregung/Hilfe ..
Und wenn ich schon gerade hier reinschreibe, vielleicht kann mir jemand einen Tipp geben wie ich in einem Editfeld mehrere Einträge einzeln nach und nach auf mehrere Zeilen schreiben kann?
Vielen Dank

Mit freundlichem Gruss
Christine