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);
}
Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge
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