Вся функция, о которой идет речь, состоит в том, чтобы дать двумерный массив, инициализированный с {0}, в качестве вывода и дать пользователю возможность перемещать 1 по полю с помощью
char wasd;
scanf("%c", &wasd);
(функция для перемещения путем изменения значения переменной wasd не важна, я думаю)
теперь мой вопрос, почему использовать
scanf("%s", &wasd);
работает только частично (иногда 1 продолжает оставаться в поле и появляется 2 раза на новом месте, хотя на самом деле его следует удалить)
и
scanf("%.1s", &wasd);
приводит к тому, что поле печатается без остановки до закрытия программы выполнения. Я решил использовать% .1s после исследования разницы между% c и% s здесь Почему в строке формата printf C есть и% c, и% s? ? Если кто-то может выяснить ответ, прочитав его, я не достаточно умен и недостаточно умен, чтобы научиться его получать.
Я также обнаружил, что fscanf () в C - разница между% s и% c , но я ничего не знаю о EOF, в котором один ответ говорит о причине проблемы, поэтому я предпочел бы получить ответ без него ,
Спасибо за ответ