сказать, что у меня есть строка:Определить, если sscanf Читать Anything с% * с
char* foo = " blah blee bleck ";
Теперь говорят, что я хочу прочитать и выбросить первые два слова:
int bar = 0;
sscanf(foo, "%*s%n", &bar);
foo += bar;
if(bar > 0) sscanf(foo, "%*s%n, &bar);
Мои вопрос в том, как я могу узнать, прочитал ли второй код sscanf
?
Нужно ли мне 0 bar
между каждым чтением, чтобы определить, действительно ли строка была прочитана, или есть лучший способ?
EDIT:
Проверка sscanf
возвращаемое значение не будет работать, потому что% * s и% п не увеличивают sscanf
«s возвращаемого значения:
printf("%d ", sscanf(foo, "%*s%n", &bar));
printf("%d ", bar);
printf("%d ", sscanf(foo + bar, "%*s%n", &bar));
printf("%d\n", bar);
Выведем:
Возможно, вам понравится [мой ответ на соответствующий вопрос] (http://stackoverflow.com/a/4160001/25324). – pmg
@pmg Я понял, что эта концепция 'sscanf', возвращающая' EOF', мне не хватало. –