Programmieren - alles kontrollieren 4.939 Themen, 20.672 Beiträge

Datum aus String herausfiltern

anul / 1 Antworten / Flachansicht Nickles

Ich habe einen String. In diesen String ist ein Datum enthalten. Ich möchte Tag, Monat und Jahr herausfiltern. Dazu habe ich mir unten gezeigte Methode geschrieben.
Bei sscanf stürzt sie immer ab. Warum?
Kann ich das Problem anders lösen?

void CSscanfDlg::OnWandel()
{
CString strTmp;
char chTmp[20];
int nAnzahl=0;
int nTag=0;
int nMonat=0;
int nJahr=0;

UpdateData(TRUE);

// Umwandlung String->char
sprintf( chTmp,"%s",m_strEingabe);

nAnzahl = sscanf( chTmp, "%d", nTag);

m_strAnzahl.Format("Anzahl: %d", nAnzahl);
m_strTag.Format("Tag: %d", nTag);
UpdateData(FALSE);
}


bei Antwort benachrichtigen
thomas woelfer anul „Datum aus String herausfiltern“
Optionen

scanf erwartet als zweiten und folgende parameter zeiger auf die adressen, in der das gelesene abgelegt werden soll. du uebergibts aber statt dessen keine zeiger auf variable, sondern die variable selbst.... deren wert wird dann als adresse interpretiert und an die wird dann geschrieben - das loesst unweigerlich eine schutzverletzung aus.

es musste also z.b. so lauten: sscanf( chTmp, "%d", %nTag)

WM_HOPETHISHELPS
thomas woelfer

this posting contains no tpyos.
bei Antwort benachrichtigen