gpt4 book ai didi

c - 需要帮助理解与 scanf 结合使用的 ungetc 行为

转载 作者:太空宇宙 更新时间:2023-11-04 07:33:16 28 4
gpt4 key购买 nike

我无法理解我的程序的行为。它调用 scanf,然后是 ungetc,然后是 printf。

我无法理解输出行为背后的原因。这是代码。如果有人澄清了行为,将会有很大的帮助。

int main()
{
int n=0;
scanf("%d",&n);
ungetc(n,stdin);
printf("%d\n",n);
return 0;
}

gcc 编译器和 linux 平台的输出:首先,如果我输入 90,它会等待另一个数字,在我输入另一个数字后,它会打印 90。

最佳答案

\n 结束您的 scanf() 格式指示 scanf() 期待并吃掉它在您的号码后看到的所有空白。它看起来像是在等待另一个输入的原因是因为它会一直读取直到它获得一些非空白 字符。无论您输入什么,实际上都不会被读取,而是保留在 stdin 上以供后续读取。

关于c - 需要帮助理解与 scanf 结合使用的 ungetc 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11375611/

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