Я пытаюсь получить данные для 3 переменных bool и 1 переменной int. Даже если я правильно ввожу данные, они не ведут себя правильно.
Я использую %d
в качестве спецификатора формата для bool
в stdbool.h
, как предложено @taufique в Спецификатор формата в scanf для типа данных bool в C
Вот мой код и его поведение:
#include <stdio.h>
#include <stdbool.h>
int main( )
{
bool health,sex,living;
int age;
scanf("%d%d%d%d",&sex,&health,&living,&age);
printf("\n%d %d %d %d\n",sex,health,living,age);
}
Консоль
0 1 0 25
0 0 0 25
Для некоторых других входных данных:
1 0 0 26
0 0 0 26
Но при использовании временных целочисленных переменных для получения входных данных, предложенных @ouah в том же Спецификатор формата в scanf для типа данных bool в C , он работает нормально.
Так почему же scanf ведет себя некорректно?
PS: он работает правильно для некоторого ввода:
0 0 1 26
0 0 1 26