編集:私のクラスでは、を使用する必要があります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のサイズのみを入力することがわかるのでしょうか。