gpt4 book ai didi

c - 关于缓冲、getchar() 和 scanf() 的问题?

转载 作者:行者123 更新时间:2023-12-04 06:32:42 28 4
gpt4 key购买 nike

我正在学习 C 并且有一些问题。请看下面的图片:

enter image description here

在阅读高亮文本时,我很困惑。是不是:当用户开始输入一些输入时,输入直接并立即放入缓冲区。当按下 Enter 键时('\n'),程序从缓冲区读取并获取输入,然后清除缓冲区?

如果是,假设在程序中,我使用:scanf("%d", &a_variable)然后我输入 123astring ,然后 123 从缓冲区中读取并清除。所以,缓冲区中现在包含“ astring ”?

我对吗?或者我误解了什么?

最佳答案

确实有两个缓冲区。
第一个是他们正在谈论的。它允许用户输入内容,然后删除等,而程序却看不到任何内容。
第二个缓冲区将保存剩余的“字符串”。

一个很好的思考方式是按下 Enter 时第一个缓冲区会传递到第二个缓冲区。第二个缓冲区由 scanf 读取。如果它是空的,程序就会等待。

第二个缓冲区几乎总是在那里。如果不是,您将必须在用户输入时准确地运行 scanf,即使在“无缓冲”情况下也是如此。

关于c - 关于缓冲、getchar() 和 scanf() 的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5214714/

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