我的代码有问题,当我从键盘读取 3 个无符号字符时,它不能按预期工作,我已经使用 fflush() 刷新缓冲区,但是第二个变量可以从键盘获取值。这是我的代码:
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