Problem mit sscanf
-
Hallo,
ich möchste mir Schreibarbeit ersparen (mit langen auskopieren in einzelstrings) und somit die sscanf funktion nutzen, weil man damit ja direkt Werte aus einem String lesen kann. Nun habe ich aber ein Problem
char Name[256],Address[256]; char *line = "Mustermann#Musterstarße 25, 12345 Musterdorf#"; sscanf(line,"%s#%s#",&Name, &Address); printf("Name: %s\nAddresse: %s",Name, Address);
Ich habe mit Google gesucht und gefunden das man einfach den %s parameter nehmen kann, Ich kann keine feste länge angeben da Name und Addresse immer variiren. Jedoch hab ich folgendes Ergebniss:
Name: Mustermann#Musterstar▀e
Addresse: `Ž
z╗‗ >¾+°(%-° ╚¶-°ÛèE° 0,é└Ò♫éðÒ♫é↑
5é
Was genau mach ich da falsch?
Danke im vorraus
~Jukka
-
Du solltest statt &Name &Address : &Name[0] &Address[0] übergeben.
%s ließt allerdings immer bis zum nächsten Whitespace weswegen "%s#%s#" mehr oder weniger sinnlos ist. Wenn andere Seperatoren als " " verwendet werden sollen nimm "[^x]".
Also sollte es wohl eher so hier aussehen:
sscanf(line,"%[#]%*c%[#]",&Name[0], &Address[0]);MfG.