Что означает n в `sscanf (s,“% d% n ”, & i, & n)`?
На странице руководства говорится, что подписьsscanf
является
sscanf(const char *restrict s, const char *restrict format, ...);
Я виделответ на ТАК где функция, в которойsscanf
используется как это, чтобы проверить, было ли входное целое число.
bool is_int(char const* s) {
int n;
int i;
return sscanf(s, "%d %n", &i, &n) == 1 && !s[n];
}
Смотря на!s[n]
кажется, что мы проверим,sscanf
отсканировал последовательность символов до окончания символа\0
, Итак, я предполагаюn
обозначает индекс, где sscanf будет в строкеs
когда функция заканчивается.
Но как насчет переменнойi
? Что это значит?
Редактировать:
Чтобы быть более явным: я вижу подписьsscanf
хочет указатель типаchar *
в качестве первого параметра. Спецификатор формата в качестве параметра secondf, поэтому он знает, как анализировать последовательность символов и столько переменных, сколько указатели преобразования, как следующие параметры. Теперь я понимаю, чтоi
для хранения проанализированного целого числа
Поскольку существует только один спецификатор формата, я попытался вывести функцию.n
Мое предположение выше дляn
правильный?