有个关于scanf_s吃到回车的问题?
本人已经被scanf折磨疯了,吃到回车是个老生常谈的问题,我从网上找了好多教程,但都不凑效,偶尔从书中找到一个方法,顺利的解决了我的问题,但是不知道什么原理,希望版主能给解释一下程序代码:
for (;;) { printf("Do you want to enter details of a%shorese(Y or N)!\n",(first!=NULL)?"nother ":" "); scanf_s(" %c",&test,sizeof(test)); if (tolower(test) == 'n') break; current = (Horse*)malloc(sizeof(Horse));
这是一个循环。理论上,如果不处理掉scanf输入的空格,会影响下面if语句的判断,但是注意一下scanf_s %c的前面有一个空格,就是这么一个小改动解决了困扰我很久的吃到回车的问题,希望版主耐心的解释一下原因。