scanf () любопытное поведение!

Недавно я наткнулся на любопытный случай (по крайней мере, для меня, поскольку я не сталкивался с этим раньше) .. Рассмотрим простой код ниже: -

int x;
scanf("%d",&x);
printf("%d",x);

Приведенный выше код принимает обычный целочисленный ввод и отображает результат, как ожидалось ..

Теперь, если я изменю приведенный выше код на следующий: -

int x;
scanf("%d ",&x);//notice the extra space after %d
printf("%d",x);

Это займет еще один дополнительный ввод, прежде чем он выдаст результат оператора printf .. Я не понять, почему пробел приводит к изменению поведения scanf () .. Кто-нибудь может мне это объяснить ....

9
задан Justicle 14 June 2011 в 20:47
поделиться