问题标签 [input-buffer]

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 投票
1 回答
289 浏览

c - scanf() 并在 C 中的一个函数中清除输入缓冲区?

我有以下想法:

我有一个清除输入缓冲区的功能:

而不是为每个输入都写

我想要一个包含两者的功能。像这样的东西:

该函数返回 1,但无论正确的输入是什么,“test”也返回 1。

终端输出:

0 投票
1 回答
251 浏览

java - Java 输入缓冲区和 do-while 循环行为(为什么它检查第一个字符 3 次?)

我一直在通过 Oracle 的“Java A Beginner's Guide”学习 Java,并且无法理解书中有关输入缓冲区和 do-while 循环的示例程序。

这个例子是关于一个数字猜测程序。它旨在忽略您可能输入的任何额外字符。所以如果你输入 ABC 然后按回车它只会检查 A。

我的问题更多关于输入缓冲区,如果我注释掉处理忽略的第二个 do-while 循环然后运行程序,它会检查该单个字符 3 次。因此,如果我输入一个“A”,然后按回车键,它似乎检查了 3 次,我得到了 3 次“......对不起,你太低了”输出信息。

如果我输入“AZ”然后按回车,它似乎检查了 4 次,它先检查 A,然后再检查 Z,然后再检查 A 2 次。


问题:

  1. 为什么似乎总是检查第一个字符 3 次?
  2. 回车键是否将 \n 分配给忽略变量?
    当没有注释掉第二个 do-while 循环时,如果输入 ABC 然后按回车,这是正确的顺序吗?
    A – 分配给 ch
    B- 分配给忽略
    C- 分配给忽略
    Enter 键 (\n) – 分配给忽略,循环退出,因为分配了忽略 \n

如果回车键实际上指定 \n 忽略,我有点困惑?还是只是等到没有更多字符可以分配忽略?书中说按回车会导致换行。因此,do-while 循环在以下情况下终止:(ignore != '\n')。

谢谢你的帮助!

0 投票
1 回答
101 浏览

c - 强制缓冲区在 scanf 中清除

我的程序中的 scanf 和输入缓冲区有问题。

首先我要求用户输入:

然后我有一个循环,在scanf中一次遍历一个字符,直到它到达\ n。问题是在循环完成后,不知何故,缓冲区中仍有一些东西,所以这个函数(在循环中被调用)再次被调用并破坏了我程序中的逻辑。

如何强制清除输入缓冲区?

我只能使用scanf(作业要求)

忽略循环的结尾,这是我得到输入的部分

0 投票
2 回答
144 浏览

c++ - cin.getline() 不接受输入的问题

我正在使用 cin.getline() 将用户输入存储在字符数组中,并尝试解析输入以仅允许输入 1 到 4 之间的数字。在特定情况下一切正常:第一次尝试输入正确的输入,或者输入 2 个或更少的字符,然后输入正确的输入。下面是一个例子。

我已经尝试了从清除输入缓冲区到将字符数组重置为空终止符以尝试查看它是否仍然保存先前输入的值(例如在意外行为中,如果“tw”仍然在内存中) . 我想我可能有类似这个讨论的问题,但我不是 100% 确定。当我尝试清除输入缓冲区时,它会等待第二组输入,我不确定为什么。当我打印结果时inputLength,在“意外行为”运行后,显示数组中仍有 2 或 3 个字符,而我只输入了 1。删除 cin.clear()/cin.ignore() 时,不需要第二个输入,但随后会发生上述行为。我很感激任何帮助。

我在下面发布了相关代码。

编辑:我注意到当我输入超过 3 个字符时,下一次运行总是会inputLength降低一个值。再次要求输入时,输入 9 个字符会减少到 8 个,即使只是1输入。

0 投票
1 回答
52 浏览

surfaceview - 如果 .mp4 文件中有双视频,如何选择显示哪一个?

我在渲染视频的地方使用surfaceView。我有一个带有 video/hevc 和 video/avc 的 .mp4 文件。我创建了两个线程,以便通过surfaceView 将它们提取、解码并渲染到表面。我可以通过更改线程中的这一行来选择要在表面上显示的视频:

但是如何通过单击按钮动态地执行此操作?

0 投票
3 回答
2239 浏览

android - 为什么“queueInputBuffer”中的“MediaCodec CodecException”只发生在 Android API 29 上?

基本信息

targetSdkVersion 28

目标:课程的目标是在发送到我的服务器之前调整视频大小。

问题:应用程序仅在 API 29 上崩溃,无论是使用真实设备还是使用 AVD。例如,代码在Pixel 2 API 28上运行良好,但在Pixel 2 API 29上运行良好

源代码:我主要使用来自bigflake.com的示例代码。

错误信息(详细日志见下文):

我尝试过 的由于 的日志信息有限MediaCodec$CodecException,我尝试从 更改为 没有MediaCodecInfo.CodecCapabilities.COLOR_FormatSurface成功MediaCodecInfo.CodecCapabilities.COLOR_FormatYUV420Flexible


日志将显示最后两个缓冲周期。我希望你会看到一些有价值的东西。

未在 *Pixel 2 API 29* 上运行的日志


在 *Pixel 2 API 28* 上工作的日志

0 投票
0 回答
346 浏览

swift - 清除语音输入缓冲区 Swift - 语音框架

我正在关注这个Apple 示例代码,并且想知道如何清除输入缓冲区(即result在这种情况下),以便在说出一个单词后重新开始听写。

例如:

当用户说出单词时,它们被添加到result.bestTranscription.formattedString然后被附加。因此,如果我说“白色”、“紫色”、“黄色”,result.bestTranscription.formattedString看起来就像“白色紫色黄色”并且单词会一直被附加到缓冲区停止(显然是约 1 分钟)。当一个词被说出来时,我正在做一个动作,所以如果你说“蓝色”,我正在检查缓冲区是否包含“蓝色”(或“蓝色”),既然它包含,继续下一个活动并重置缓冲区。

但是,当我这样做时,我收到此错误:

2020-09-09 18:25:44.247575-0400 测试应用程序[28460:1337362] [实用程序] +[AFAggregator logDictationFailedWithError:] 错误域=kAFAssistantErrorDomain 代码=209“(空)”

当它听到“蓝色”时停止音频检测可以正常工作,但是一旦我尝试重新初始化语音识别代码,它就会窒息。下面是我的识别任务:

这是完整的代码:

我确定我缺少一些简单的东西,有什么建议吗?

0 投票
1 回答
32 浏览

java - 在java中使用for循环创建多个对象时的输入缓冲区

我想在java中使用for循环创建多个对象,但是这段代码没有显示正确的输出,我可以正确地获取所有输入,但是程序没有显示为arr [i].model = sc.nextLine( );. 并且程序显示“线程中的异常”main“java.lang.ArrayIndexOutOfBoundsException”错误。我认为这是一个输入缓冲区问题。我该如何解决?

0 投票
0 回答
53 浏览

c - 在阅读了一些输入后抓住 Ctrl+D

我正在尝试编写一个像 UNIX 终端一样工作的程序。因此,当按下 Ctrl+D 时,它应该退出。我正在使用以下方法读取输入:

我也像这样存储输出:

现在我这样做是为了检查CTRL+D

现在的问题是我怎样才能CTRL+D在一些输入后捕捉到 , ?就像我已经输入asdasdas然后CTRL+D. 然后我想发出一些警报,或者打印一个新行。我该怎么做?

就我而言,它只是像往常一样继续执行块的其余部分(大小不为 0)。

这是对大小为 0 的 Ctrl+D 的引用:https ://stackoverflow.com/a/1516152/10305444

0 投票
2 回答
61 浏览

c - 这如何清除输入缓冲区?

我发现这段代码清除了输入缓冲区,但我真的不明白它是如何工作的。任何人都可以用简单的方式解释它吗?