reading a date with sscanf
c, parsing, scanf
Solution
You need to pass the address of the `int` variables:
int day, month, year;
sscanf(string, "%d-%d-%d;", &day, &month, &year);
`sscanf()` returns the number of assignments made, recommend checking the return value before using `day`, `month` and `year`:
if (3 == sscanf(string, "%d-%d-%d;", &day, &month, &year))
{
}
Problem
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.