繁体   English   中英

当我向scanf(“%d”,&var)输入字符串“ abcd”时,会发生什么?

[英]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类型的数据。 当您输入字符串代替intscanf开始读取输入,看到字符时停止读取并返回0

成功时,该函数返回已成功填充的参数列表的项目数。 因此,如果您不键入数字,则读取的项目数将为0。

有关更多信息,请参考http://www.cplusplus.com/reference/cstdio/scanf/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM