Учитывая следующий код и предполагая, что единственным вводом является буква A, за которой следует новая строка, scanf должен вернуть 0 из-за сбоя сопоставления:
int x;
scanf("%d", &x);
Мой вопрос заключается в том, разрешено ли scanf по закону изменять значение x, даже если ничего во входных данных не соответствует формату% d, если он по-прежнему возвращает 0. Стандарт языка, похоже, не решает эту проблему, поэтому мой первый Такое впечатление, что ответ - нет.