Как правильно и безопасно использовать sscanf

Прежде всего, другие вопросы об использованииsscanf не отвечайте на мой вопрос, потому что общий ответ не использоватьsscanf вообще и пользуйсяfgets или жеgetch вместо этого, что невозможно в моем случае.

Проблема в том, что мой профессор C хочет, чтобы я использовалscanf в программе. Это требование. Однако программа также должна обрабатывать все неправильные данные.

Программа должна прочитать массив целых чисел. Не имеет значения, в каком формате поставляются целые числа для массива. Чтобы упростить задачу, программа может сначала прочитать размер массива, а затем целые числа в каждой новой строке.

Программа должна обрабатывать входные данные, подобные этим (и сообщать об ошибках соответственно):

999999999999999 ... 9 (числа больше целого)12a3 (не читайте это как целое число 12)a ... z (строки)11 aa 22 33 \ n все в одной строке (это можно сделать, отбросив все после 11)входы больше, чем входной массив

Там может быть больше неправильных случаев, это единственное, что я мог придумать.

Если введен ошибочный ввод, программа должна попросить пользователя ввести еще раз, пока не будет введен правильный ввод, но предыдущий правильный ввод должен быть сохранен (только неправильный ввод должен быть удален из потока ввода).

Все должно соответствовать стандарту C99.

Ответы на вопрос(3)

Ваш ответ на вопрос