计算机二级考试C语言辅导:关于标准库函数scanf

计算机二级考试C语言辅导:关于标准库函数scanf,第1张

计算机二级考试C语言辅导:关于标准库函数scanf,第2张

不了解scanf,导致程序错误。scanf的具体用法已经在考试中整理出来了。希望大家一起进步,有什么错误都可以提出来。
int scanf(char *格式,...);
这应该是scanf的标准形式。先说他的回归值。
几乎所有的库函数都有返回值。有些人可能会感到惊讶。为什么很少有人使用scanf的返回值?
scanf将返回成功接收的变量个数的值。比如scanf("%d ",&j ")和scanf("%d= ",&j "),如果接受成功,返回值为1
# include
int main(){
int j .
printf(" % d ",scanf("%d\n ",& j));
返回0;
}
如果在开头输入回车,程序会继续等待您的输入,因为输入数字时,scanf会跳过空白字符。(c编程语言说scanf实际上是用getchar()接受一串数字,转换成数字)
如果我键入Ctrl-Z(UNIX上是ctrl-d),会返回-1(取决于编译器)。这其实是常量e of的值,如果我输入的话叫做返回eof
,但是如果输入浮点数会怎么样呢?
在我的例子中,也会返回1,但是缓冲区会留下垃圾。如果是scanf("%d%d ",&a,& b);会有一个错误。
可以使用库函数fflush(stdin)来清除缓冲区。不过,雨里的闫飞姐好像说这种用法不规范。K&R,只是说行为是未定义的,但是我们可以使用while((c=getchar()))!='\n'&&c!= EOF);还可以清理后面的垃圾!

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 计算机二级考试C语言辅导:关于标准库函数scanf

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情