I've got to read a date format (dd-mm-yyyy;) from a char* string using sscanf with this line of code:
sscanf(string, "%[^-]-%[^-]-%[^;];", day, month, year)
where day/month/year are char* string of 3/3/5 elemets each.
In this way it works but when i try to use day/moth/year as integer
variables (with same sscanf
), I got a 0 0 0
value when i use printf
on them. If i change sscanf
to
sscanf(string, "%d-%d-%d;", day, month, year)
I got segmentation fault
.
Anyone can help me? Using K&R book, I didn't find a solution.
You need to pass the address of the
int
variables:sscanf()
returns the number of assignments made, recommend checking the return value before usingday
,month
andyear
: