В чем разница между% [^ \ n] и% [^ \ n] s? - PullRequest
0 голосов
/ 18 февраля 2019

Почему некоторые писатели используют спецификатор %[^\n]s вместо %[^\n]?Какой из них правильный?

1 Ответ

0 голосов
/ 18 февраля 2019

Если вы хотите читать в последовательности символов, не являющихся символом новой строки, %[^\n] является правильным.

Спецификатор формата %[ для scanf будет принимать любые следующие символы, пока ] не станетвстречается.Если первый указанный символ ^, то он принимает символы , а не в этом списке.Читаемые символы затем помещаются в заданный параметр char *.

%[^\n]s - это описанный выше спецификатор формата , за которым следует литерал 's'.s является , а не частью спецификатора формата %[.Таким образом, он будет читать символы до тех пор, пока не встретит символ новой строки и не поместит эти символы в заданный char *, затем попытается прочитать символ s, который не найден, потому что следующий символ новой строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...