问题标签 [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.

0 投票
3 回答
790 浏览

c++ - 为什么我们刷新流而不刷新缓冲区?

我知道这将是一个非常愚蠢的问题,但是在阅读了这么多关于整个“缓冲区”系统的文档之后,我不明白为什么人们会刷新流而不是缓冲区。

我见过有人这样写:

所以我想知道,既然我们实际上将东西存储在缓冲区中,为什么我们刷新它关联的流而不是直接刷新缓冲区,它实际上存储了一些东西并且应该被刷新。(好吧,有些人告诉我,如果事情发生了就像我说的那样,这将是同样的事情,所以麻烦自己......)

例如,我们不能写fflush(buffer).Why?

0 投票
3 回答
2188 浏览

c - fflush(stdin) 和 flushstdin() 的区别

使用fflush(stdin) 和 和有什么不一样flushstdin()?我知道的唯一区别是我需要在使用之前写下那些 void 的东西flushstdin(),但我不知道为什么。

我是初学者!哪个代码最好?或者他们是平等的?

0 投票
1 回答
722 浏览

python - python InputDevice fflush

我使用 python-evdev 库来检测键盘事件。

但是我有一个问题,我需要在检测到键后刷新键盘事件。

例子:

如何刷新开发?

0 投票
1 回答
71 浏览

c - 即使在 fflush 之后标准输出缓冲

我编写了一个简单的 C 程序,它可以stdinstdout不缓冲字符的情况下进行管道传输:

但是,尽管调用了fflush. 为什么会发生这种情况,我该如何解决(如果可能)?

0 投票
0 回答
58 浏览

c - fflush(stdin) 与 VS2013 和 VS2015

我确实包含了该库<stdio.h>,但下面的代码导致了 VS 2015(以及 GNU GCC)的无限循环:

但是当我在我之前的 VS 版本(2013 年)中编译它时,它工作得非常好。所以我怀疑该fflush功能不再适用于 VS 2015。

对不起,我是 C 语言的新手。因此,根据我所了解的,使用fflush(stdin)实际上是一个坏主意,并且该函数已被标记为未定义的行为。

但这里有一些真正让我好奇的问题:

  1. 为什么fflush(stdin)不再适用于 VS2015?

  2. 是否还有其他方法可以实现fflush(stdin)可以在涉及do-while循环的代码中使用的“功能”(以防止无限循环)?

谢谢

0 投票
0 回答
24 浏览

c - 循环用户输入

我正在尝试设置一个用户可以继续输入字符串的循环。不知道我哪里出错了(我是 C 编程新手)

这是我写的代码:

这是我得到的输出:

提前致谢。

0 投票
1 回答
148 浏览

c - 如何从标准输出中删除显示的文本?

我创建了一个显示文本的宏,然后刷新标准输出。问题是如果文本比新文本更长,如何强制清除旧的打印文本。

示例:如果我尝试打印一个包含 50 个字符的字符串,我需要覆盖所有文本并用 25 个字符重写文本。一直以来,我总是打印第一个文本的一部分,因为第二个文本更短。

另外我需要\r在每行的末尾插入,如何添加我的宏?

结果:

预期结果:

0 投票
1 回答
243 浏览

c - C:如果用户使用 fflush(stdin) 输入字符,程序将不会再次询问用户

显然我不会在这里发布我的整个代码,因为它很长,毕竟它是一个税收计算器。这个问题适用于我所有需要双值作为用户输入的 scanfs。基本上正如标题所说,我的程序不会要求用户输入另一个值,即使它是一个字符,这显然不是一个 double 值,所以非常感谢一些帮助。请原谅我,因为我仍处于课程的第一年并且对编程一无所知。

0 投票
2 回答
1212 浏览

c - Linux 中的 fflush 函数有什么相同之处?

Linux 手册建议fflush不要使用该功能。

所以,我发现它while( getchar() != '\n'的作用与fflush(stdin).

例如)

我的试用代码:

如果我在 Linux(Ubuntu)中执行上面的代码,结果什么都没有。因为\n不在字符串中。stdout所以,我必须通过清空缓冲区来打印它们。

奇怪的现象是,当我使用getc(stdout)或时,结果打印得很好getc(stdin)

我不知道为什么两者都做得很好。我希望这只能getc(stdout)很好地工作,因为我将stdin其视为键盘缓冲区和stdout监视器缓冲区。

0 投票
4 回答
1910 浏览

c - 在使用 getchar() 后,在无限 for 循环 C prog 中无法使用 fflush(stdin) 清除标准输入

我刚开始使用 C 编程,当我试图编写一个只接受 y 或 n 个字符的程序时,我遇到了

当我运行此代码并输入除 Y/y 或 N/n 之外的任何其他字符时,我会收到最后一个 printf 语句(您需要说是/否)作为输出两次。我知道发生这种情况是因为它认为输入,即 '\n' 作为另一个字符。使用 fflush 无济于事,因为它是一个无限循环。我还能如何修改它以使最后一条语句只显示一次?