【发布时间】:2014-08-20 22:48:54
【问题描述】:
输入字符串到
scanf("%d",&var) returns 0.
有一个类似的问题here,但没有提供对内部发生的情况的解释。提供的是一种处理这种情况的方法。
GCC 究竟如何处理传递给 scanf("%d",&var) 的字符串,为什么在这种情况下返回值是 0?
【问题讨论】:
-
这实际上是您的标准 C 库,而不是 Gcc,这里在做什么(忽略内置函数)。而且 Gcc 永远不会看到在运行时传入的字符串。
-
我不完全理解你的问题(或者至少不是,链接的问题中没有回答什么)。是吗,如何从流中读取一个字节,然后在它是无效字节的情况下将其推回?对于实施细节:看看例如
glibc源代码。 -
> “是吗,如何从流中读取一个字节,然后在它是无效字节的情况下将其推回?”这正是我想了解的.
-
非常感谢@mafso!