以下是引用heishu在2012-9-25 09:20:43的发言:
OK = scanf("%f", &height);首先我想这句语句的意思是:函数输入正确返回为1负给ok,输入不正确返回0给ok;
所以输入字符是,ok被负0;函数无限循环执行 else {
printf("\nDon't trick me, Again(in Meters):");
OK = scanf("%f", &height);
}
这条语句。而且这句不执行OK = scanf("%f", &height);
不太明白…
请问 Ok 被负 0 是甚么意思?在甚么条件下才会令函数无限循环执行
以下是引用ldzy在2012-9-25 16:36:32的发言:
第十楼已经讲得差不多了。我补充一个,有关printf(),scanf()要有输入输出缓冲区的概念。当scanf()未能读取指定形式的输入时,它就留下这个不相容的输入,以供下次读取(抄书,
)。 while(getchar()!='\n')continue;跳过输入行剩余部分。
第一个点明白了…所以第一次要的东西就放进变数里,不要就放在缓冲里,有用的时侯就会拿出来,是吧?
但是“跳过输入行剩余的部分”又是甚么意思?
我只理解到…如果用户不按回车,那就不会让程式继续走下去