分类: C/C++
2011-11-29 17:53:52
来北京学习的第一天,来记录记录~
上午讲的是linux基本命令,相当无聊~
下午讲C语言基础,有点无聊~
学到了一些关于scanf函数以前不曾注意的东西。
scanf函数返回的是正确匹配的参数的个数,如果格式匹配错误,函数返回失败,输入仍然留在输入缓冲,是不会被清空的。如需要输入一个整型数,但是输入的是一个字符型,函数返回0,输入的字符仍然留在缓冲区,用一个例子解释:
while(1)
{
scanf("%d", &a);
}
如果输入一个字符,则本段代码会一直循环,而不会等待输入~
解释:在输入一个字符后,函数返回0,该字符仍然留在输入缓冲;再执行下一次输入,scanf会从输入缓冲区读取,仍然不匹配,函数返回0,再执行下一次输入。所以就没有了等待输入~