Требовать появления определенных слов с помощью scanf - PullRequest
0 голосов
/ 13 июля 2020

Я хочу, чтобы scanf принимал только определенное слово, например, если я хочу принять foo или bar от пользователя, я напишу что-то вроде:

scanf(/*more input specifiers before and after*/ "%s[foo/bar]", demo);

Это вернет 1 и назначит demo с вводом пользователя, только если пользователь ввел либо foo, либо bar.

Как я могу добиться такой функциональности с scanf?

Примечание: должен быть совместим с C89 и должен работать при использовании fscanf.

1 Ответ

0 голосов
/ 13 июля 2020

Функция scanf() считывает данные из stdin и сохраняет их в соответствии с форматом параметра в местах, указанных дополнительными аргументами. Дополнительные аргументы должны указывать на уже выделенные объекты типа, указанного их соответствующим описателем формата в строке формата.

Другая работа scanf() заключается в том, что он возвращает количество успешно прочитанных элементов. У него нет никакой рабочей возможности сравнивать данную строку, например foo /OR/ bar.

...