fgets() を使用してユーザー入力を取得し、sscanf() を使用して double に解析します。これが私のコード例です:
int menuItem = 0;
char input[3];
printf("Enter valid menu item"); //values are 1, 2, 3, 4, 5, and -1
fgets(input, sizeof input, stdin);
sscanf(input, "%d", &menuItem);
ユーザーが 3 桁を入力するとエラーが発生し (無効な入力であり、それに応じて処理したい)、3 桁目を次の入力として自動的に配置することにより、次の fgets() をスキップします。たとえば、ユーザーが 123 を入力すると、次の fgets をスキップし、値 3 を入力として使用します。どうすればこれをクリアできますか、またはせいぜい1桁しか読み取れません(ただし、-1を処理できます)。