[英]What exactly happens when I input a string “abcd” to scanf(“%d”, &var)?
输入一个字符串到
scanf("%d",&var) returns 0.
还有一个类似的问题在这里 ,但没有提供什么内部发生的解释。 提供的是一种处理这种情况的方法。
GCC如何精确处理传递给scanf(“%d”,&var)的字符串,在这种情况下为什么返回值为0?
成功完成后, scanf
将返回成功匹配和分配的输入项的数量; 如果早期匹配失败,此数字可以为零。
在看到%d
格式字符串时, scanf
需要一个int
类型的数据。 当您输入字符串代替int
, scanf
开始读取输入,看到字符时停止读取并返回0
。
成功时,该函数返回已成功填充的参数列表的项目数。 因此,如果您不键入数字,则读取的项目数将为0。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.