问题标签 [fflush]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 为什么我们刷新流而不刷新缓冲区?
我知道这将是一个非常愚蠢的问题,但是在阅读了这么多关于整个“缓冲区”系统的文档之后,我不明白为什么人们会刷新流而不是缓冲区。
我见过有人这样写:
所以我想知道,既然我们实际上将东西存储在缓冲区中,为什么我们刷新它关联的流而不是直接刷新缓冲区,它实际上存储了一些东西并且应该被刷新。(好吧,有些人告诉我,如果事情发生了就像我说的那样,这将是同样的事情,所以麻烦自己......)
例如,我们不能写fflush(buffer)
.Why?
c - fflush(stdin) 和 flushstdin() 的区别
使用fflush(stdin)
和 和有什么不一样flushstdin()
?我知道的唯一区别是我需要在使用之前写下那些 void 的东西flushstdin()
,但我不知道为什么。
和
我是初学者!哪个代码最好?或者他们是平等的?
python - python InputDevice fflush
我使用 python-evdev 库来检测键盘事件。
但是我有一个问题,我需要在检测到键后刷新键盘事件。
例子:
如何刷新开发?
c - 即使在 fflush 之后标准输出缓冲
我编写了一个简单的 C 程序,它可以stdin
在stdout
不缓冲字符的情况下进行管道传输:
但是,尽管调用了fflush
. 为什么会发生这种情况,我该如何解决(如果可能)?
c - fflush(stdin) 与 VS2013 和 VS2015
我确实包含了该库<stdio.h>
,但下面的代码导致了 VS 2015(以及 GNU GCC)的无限循环:
但是当我在我之前的 VS 版本(2013 年)中编译它时,它工作得非常好。所以我怀疑该fflush
功能不再适用于 VS 2015。
对不起,我是 C 语言的新手。因此,根据我所了解的,使用fflush(stdin)
实际上是一个坏主意,并且该函数已被标记为未定义的行为。
但这里有一些真正让我好奇的问题:
为什么
fflush(stdin)
不再适用于 VS2015?是否还有其他方法可以实现
fflush(stdin)
可以在涉及do-while循环的代码中使用的“功能”(以防止无限循环)?
谢谢
c - 循环用户输入
我正在尝试设置一个用户可以继续输入字符串的循环。不知道我哪里出错了(我是 C 编程新手)
这是我写的代码:
这是我得到的输出:
提前致谢。
c - 如何从标准输出中删除显示的文本?
我创建了一个显示文本的宏,然后刷新标准输出。问题是如果文本比新文本更长,如何强制清除旧的打印文本。
示例:如果我尝试打印一个包含 50 个字符的字符串,我需要覆盖所有文本并用 25 个字符重写文本。一直以来,我总是打印第一个文本的一部分,因为第二个文本更短。
另外我需要\r
在每行的末尾插入,如何添加我的宏?
结果:
预期结果:
c - C:如果用户使用 fflush(stdin) 输入字符,程序将不会再次询问用户
显然我不会在这里发布我的整个代码,因为它很长,毕竟它是一个税收计算器。这个问题适用于我所有需要双值作为用户输入的 scanfs。基本上正如标题所说,我的程序不会要求用户输入另一个值,即使它是一个字符,这显然不是一个 double 值,所以非常感谢一些帮助。请原谅我,因为我仍处于课程的第一年并且对编程一无所知。
c - Linux 中的 fflush 函数有什么相同之处?
Linux 手册建议fflush
不要使用该功能。
所以,我发现它while( getchar() != '\n'
的作用与fflush(stdin)
.
例如)
我的试用代码:
如果我在 Linux(Ubuntu)中执行上面的代码,结果什么都没有。因为\n
不在字符串中。stdout
所以,我必须通过清空缓冲区来打印它们。
奇怪的现象是,当我使用getc(stdout)
或时,结果打印得很好getc(stdin)
。
我不知道为什么两者都做得很好。我希望这只能getc(stdout)
很好地工作,因为我将stdin
其视为键盘缓冲区和stdout
监视器缓冲区。
c - 在使用 getchar() 后,在无限 for 循环 C prog 中无法使用 fflush(stdin) 清除标准输入
我刚开始使用 C 编程,当我试图编写一个只接受 y 或 n 个字符的程序时,我遇到了
当我运行此代码并输入除 Y/y 或 N/n 之外的任何其他字符时,我会收到最后一个 printf 语句(您需要说是/否)作为输出两次。我知道发生这种情况是因为它认为输入,即 '\n' 作为另一个字符。使用 fflush 无济于事,因为它是一个无限循环。我还能如何修改它以使最后一条语句只显示一次?