Проверьте возвращаемое значение.
Другой вариант - использовать %n
формат:
int n = -1;
int ttype;
fscanf(map, "%i%n", &ttype, &n);
if(-1 == n)
// failed to parse
Таким образом, вы можете проверить, сколько символов было использовано fscanf
. Это не имеет значения в выше, но в:
int count = fscanf(map, "%i abc %n", &ttype, &n);
count
может быть больше единицы, даже если abc
часть формата не совпадает. С другой стороны, n
будет установлен только в случае совпадения всего формата.