gpt4 book ai didi

c - ungetc() 是否保证在 scanf ("...%c"后工作?

转载 作者:行者123 更新时间:2023-11-30 15:49:05 27 4
gpt4 key购买 nike

我猜想,在 scanf("%d") 之后 ungetc() 可能会失败,因为 scanf 可能会为第一个非数字字符隐式调用 ungetc()。
但如果格式以 %c 结尾,就不会发生这种情况,对吗?

最佳答案

如果您阅读 source code for scanf (实际上是操作 scanf 的内部函数),您将看到 %c 说明符将触发 CT_CHAR 开关情况的执行,这不在标准输入上调用 ungetc。所以你是对的。

这仅适用于 GNU libc,但我希望其他实现也有类似的行为。

关于c - ungetc() 是否保证在 scanf ("...%c"后工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16418837/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com