コードに問題があります。キーボードから 3 つの unsigned char を読み取ると期待どおりに動作しません。既に fflush() を使用してバッファをフラッシュしていますが、2 番目の変数はキーボードから値を取得できます。これが私のコードです:
void main(){
// input Date from keyboard
unsigned char tmpDayOfWeek;
unsigned char tmpDay;
unsigned char tmpMonth;
unsigned int tmpYear;
printf("Please input your date:\n");
printf(" Day of Week (0 for Sunday, 1 for Monday,...): ");
fflush(stdin);
scanf("%hhu", &tmpDayOfWeek);
printf(" Day (1..31): ");
fflush(stdin);
scanf("%hhu", &tmpDay);
printf(" Month (1..12): ");
fflush(stdin);
scanf("%hhu", &tmpMonth);
printf(" Year (1900..9999): ");
fflush(stdin);
scanf("%u", &tmpYear);
printf(" dow = %d\n", tmpDayOfWeek);
printf(" Day = %d\n", tmpDay);
printf(" Month = %d\n", tmpMonth);
printf(" Year = %d\n", tmpYear);
fflush(stdin);
cin.get();
return;
}
このコードを実行し、キーボード 3、4、5、および 2000 から入力すると、出力は次のようになります。
dow = 3
Day = 0
Month = 5
Year = 2000
tmpDay の値は 0 ですが、4 と入力しましたが、誰か助けてください。ありがとう、HoangVi P/S: 私は VC++ 2005 を使用しています