printf выполняется несколько раз только на определенных входах

Программа выполняет команду printf несколько раз, когда вводом является "08" или "09", а не каким-либо другим аналогичным числом, скажем "03" или "07".

do
{
printf("Enter date:");
scanf("%i/%i/%i", &d, &m, &y);
}
while (d !=0 || m != 0 || y != 0);

Это вывод (цифры вводятся пользователем) -

Enter date:3/6/8
Enter date:3/6/08
Enter date:Enter date:04/05/06
Enter date:08/08/08
Enter date:Enter date:Enter date:Enter date:01/02/03
Enter date:04/05/06

Почему это происходит и как я могу это исправить?

1 ответ

Решение

Пока не ответили, так что это не повредит.

Я не уверен, правильно ли это, но, поскольку сегодня я больше читаю о C, я думаю, что это должно происходить, потому что scanf читает ввод как восьмеричное число, потому что оно начинается с нуля. И странное поведение может быть потому, что нет восьмерки 08 и 09.

Другие вопросы по тегам