问题标签 [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 投票
2 回答
7091 浏览

c - fseek(stdin,0,SEEK_SET) 和 rewind(stdin) 真的会刷新输入缓冲区“stdin”。可以使用它们吗?

我从一开始就在想为什么不能刷新输入缓冲区fseek(stdin,0,SEEK_SET)rewind(stdin)因为它清楚地写在cplusplusreference调用这两个函数刷新缓冲区(输入或输出无关)。但由于整个想法似乎是新的,我把它放进去昨天一个笨拙的问题。

是否可以使用 fseek(stdin,1,SEEK_SET) 或 rewind(stdin) 来刷新输入缓冲区,而不是使用不可移植的 fflush(stdin)?

而且我对我得到的答案持怀疑态度,这似乎表明我做不到。坦率地说,我看不出为什么不这样做。今天我自己尝试了它并且它有效newline lurking in stdin我的意思是,为了在使用多个语句时处理问题scanf(),似乎我可以使用fseek(stdin,0,SEEK_SET)rewind(stdin)代替 non-portable 和UB fflush(stdin)

请告诉我这是否是没有任何风险的正确方法。到目前为止,我一直在使用以下代码来处理newline in stdinwhile((c = getchar()) != '\n' && c != EOF);。下面是我的代码:

在我的程序中,如果我不使用fseek(stdin,0,SEEK_SET)or rewind(stdin),则跳过第二个scanf()始终fseek(stdin,0,SEEK_SET)使用换行符。如果我使用or ,问题就解决了rewind(stdin)

0 投票
0 回答
239 浏览

printf - 如何让 fprintf 和 fflush 更有效?

我想为我的服务器写一个记录器。我正在使用该fprintf函数来编写日志文件。

如果我的服务器崩溃,则缓冲区无法刷新,因此我无法从缓冲区中获取最后一个文本。

如果我每次都调用fflush函数,这是一个好的解决方案吗?fprintf有什么好的解决方案可以让我的记录器更有效吗?

0 投票
3 回答
48264 浏览

c - 了解对 fflush() 的需求以及与之相关的问题

下面是使用 fflush() 的示例代码:

我所知道的 fflush() 是一个用于刷新输出缓冲区的库函数。我想知道使用 fflush() 的基本目的是什么,在哪里可以使用它。主要是我想知道使用 fflush() 会出现什么问题。

0 投票
2 回答
127 浏览

c - 为什么 printf 在我的程序中不起作用(尝试冲洗)

我在 C 之前学习了 Objective-C,现在我要回到 C,我不明白为什么printf()循环内部不起作用?有人可以建议我吗?

如果有人想知道,该程序是 Skiena 和 Revilla 所著“编程挑战”一书中的第一个挑战。

0 投票
1 回答
2304 浏览

c - 在不调用 fflush 或先写入 stderr 的情况下使用 fwrite

我有一个将二进制数据写入文件或stdout. 但是调用fwrite()有时会失败,除非我fflush(stderr)stderr尝试fwrite.

这是正常行为,还是表明存在一些潜在的内存问题?调试很困难,因为一旦我尝试到数据fprint,“问题”就会消失。stderrfwritestdout

这是该函数的一个非常简化的版本。

任何智慧都值得赞赏:)

0 投票
2 回答
409 浏览

c - scanf 被跳过,即使有安全措施 (getchar())

我知道这个问题被问了一百遍,我已经搜索了所有的可能性,但我想我还不够熟练,不知道这个问题在哪里。我正在编写一个程序,我需要用数据(整数和字符串)填充结构。我第一次尝试它时,它跳过了除第一个之外的所有内容,但我并没有惊慌,因为我记得在课堂上我需要用它fflush(stdin)来克服这个问题。我搜索过的网站投票反对使用fflush(stdin),因为它具有未定义的行为。他们说使用getchar()会吃掉额外的换行符,从而解决问题。因此我的代码:

我知道这有点乱,但专注于 scanfs 和 getchars。getTijd()其中还有几个扫描整数的scanfs,它们也会被跳过。我不知道从这里去哪里。(代码并不完整,其余的只是无关紧要)

0 投票
1 回答
589 浏览

c++ - stderrr 上的 fflush 导致程序崩溃

我正在重定向stderr到 Windows Phone 运行时的日志文件:

程序在调用时间歇性地崩溃fflush(stderr);。当我不重定向时,stderr一切似乎都工作正常。

0 投票
1 回答
93 浏览

arrays - 如何在简单的井字游戏输入中使用 fflush(stdin)?

我是 C 编程的新手,我有这个任务需要我创建一个简单的井字游戏。

我设法用数组和循环创建了一个空板。现在我需要获取用户的输入,并将“X”/“O”放入板中。

这是代码:

任务说我可以使用这段代码fflush(stdin)来清除键盘缓冲区,我显然不知道它是什么以及如何使用它:(

我对该代码进行了一些研究,它似乎取代了现有的输入和输出。如果我错了,请纠正我。

fflush(stdin)那么在我目前的情况下如何使用?

山姆

0 投票
3 回答
172 浏览

c - 使用 fflush 的时钟不清除屏幕

我正在尝试在 C 中制作时钟,但屏幕没有正确清除,它只是不断打印到新行。我如何不当使用fflush

0 投票
2 回答
3072 浏览

c - 为什么 fflush(stdin) 函数不起作用?

我的主要问题是为什么 fflush(stdin); 功能不工作?每当我运行代码时,我都无法使用空格 ex 获得第二个输入。你好世界,但我得到你好??谢谢