Почему это не работает, как ожидалось?
int main()
{
unsigned char louise, peter;
printf("Age of Louise: ");
scanf("%u", &louise);
printf("Age of Peter: ");
scanf("%u", &peter);
printf("Louise: %u\n", louise);
printf("Peter: %u\n", peter);
return 0;
}
Выходы:
Age of Louise: 12
Age of Peter: 13
Louise: 0
Peter: 13
Но если я поменяю объявления переменных, это сработает:
unsigned char peter, louise;
Выходы:
Age of Louise: 12
Age of Peter: 13
Louise: 12
Peter: 13
Я также заметил, что использование int
или unsigned int
работает без необходимости замены переменных, но char
- нет.
Я попытался поставить printf("%u", louise);
сразу после scanf()
для Луизы, и значение сохранено правильно. И если я закомментирую второй scanf()
, он также работает нормально ...
«Проблема» отображается в Windows (DevCpp) и Linux (kwrite + make). Это ошибка компилятора или моя?