输入字符串
scanf("%d",&var) returns 0.
有一个类似的问题here,但没有提供内部发生的解释。提供的是一种处理这种情况的方法。
GCC如何处理传递给scanf的字符串(“%d”,& var),为什么在这种情况下返回值为0?
答案 0 :(得分:3)
成功完成后,scanf
将返回成功匹配和分配的输入项目的数量;如果早期匹配失败,此数字可以为零。
在格式字符串中看到%d
时,scanf
需要int
类型数据。当您输入字符串代替int
时,scanf
开始阅读输入,当看到字符时,停止阅读并返回0
。
答案 1 :(得分:3)
成功时,该函数返回成功填充的参数列表的项数。因此,如果您不键入数字,则读取的项目数将为0.