Изменить: для моего класса я должен использовать scanf
. Поэтому рекомендовать другие способы ввода - это не то решение, которое я ищу (если есть тот, который включает scanf).
Если я читаю ввод пользователя для небольшого проекта (например, игры). Скажем, я прошу would you like to play?
Это будет принимать ответ yes
или no
. Поэтому я пишу какой-то простой код:
#include <stdio.h>
int main(void)
{
char string[3]; //The max number of letters for "yes".
printf("Would you like to play?");
scanf("%s", string);
}
Таким образом, этот код должен просто попросить их ввести yes
или no
. Я устанавливаю длину моего char array
в размере 3
. Таким образом, он достаточно велик, чтобы удерживать yes
, а также no
. Но если кто-то должен был ввести недопустимый ввод, такой как yesss
, я знаю, как впоследствии сравнить строку для обработки такого события, но не будет ли это технически/возможно перезаписать другие локальные переменные, которые я объявил, потому что он будет выходить за пределы длины моего массива? Если да, есть ли способ справиться с этим, чтобы ограничить 3 вводных символа или что-то еще? А если нет, то почему/как он знает только вход для размера 3?
* Примечание: я новичок в C, и я не мог найти много на этом, поэтому я ценю это, даже если это просто. Потому что я явно чего-то пропускаю. Я родом из java-фона, где это даже не проблема.