C++:cin while cout [关闭]

2024-03-26

好吧,我正在用 C++ 编写一个聊天程序,以便在 Linux 终端中使用。我希望在打字时也能收到消息。基本上,非阻塞cin。我设法通过创建一个线程来完成这项工作。但问题是传入的消息和我的打字被合并在一起。

有什么办法可以分开cin来自其他线路的线路cout?

对不起我的英语不好。


有什么办法可以分开cin来自其他线路的线路cout?

是的,但这有点棘手:您需要禁用控制台的回显,并在最终用户键入时打印他键入的字符。

当您检测到传入消息时,您需要执行以下三件事:

  • 清除最终用户迄今为止输入的行上的所有字符
  • 打印收到的消息
  • 在下一行打印到目前为止输入的字符。

最终结果如下所示:

Friend: How are you?                        <== This is your friend's prior message
You: > I am fi                              <== This is the text you've entered so far

当您完成输入之前收到下一条消息时,您可以按如下方式重新排列最后几行:

Friend: How are you?                        <== This is your friend's prior message
Friend: Are you coming to school tomorrow?  <== This is the new line that came in as the user was typing
You: > I am fi                              <== This is the text you've entered so far, re-printed again
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++:cin while cout [关闭] 的相关文章

  • 电话号码的正则表达式,不允许全零

    需要您的正则表达式帮助 我当前的正则表达式是 d 8 最小长度为 8 不允许包含字母 特殊字符和空格 我还想禁止全零 如 00000000 Thanks 该模式应该可以满足您的需求 0 d 8 The 0 部分是负前瞻 将阻止仅输入零 Ex
  • SharpZipLib - 将文件夹/目录添加到 zip 存档

    通过示例 我很好地掌握了如何提取 zip 文件 几乎在每个示例中 识别 ZipEntry 是否为目录的方法如下 string directoryName Path GetDirectoryName theEntry Name string
  • 使用API​​隐藏程序标题栏

    它可以使用 c 和 windows api 删除窗口控制台标题栏 如果是的话如何 请 这个简单的应用程序隐藏并显示其所在控制台的标题栏 它会立即将控制台标题更改为 guid 以查找窗口句柄 然后 它使用 ToggleTitleBar 使用找
  • C# 中四舍五入到偶数

    我没有看到 Math Round 的预期结果 return Math Round 99 96535789 2 MidpointRounding ToEven returning 99 97 据我了解 MidpointRounding ToE
  • 用户控件内所有控件均为空

    我有一个 UserControl 它使用 UserControl 以及其他控件 In the ascx文件我有以下代码
  • 无法从 Web api POST 读取正文数据

    我正在尝试从新的 Asp Net Web Api 中的请求中提取一些数据 我有一个像这样的处理程序设置 public class MyTestHandler DelegatingHandler protected override Syst
  • 如何在编译C代码时禁用警告?

    我正在使用 32 位 Fedora 14 系统 我正在使用编译我的源代码gcc 有谁知道如何在编译c代码时禁用警告 EDIT 是的 我知道 最好的办法是修复这些警告以避免任何未定义 未知的行为 但目前在这里 我第一次编写了巨大的代码 并且在
  • 有没有办法使用 i387 fsqrt 指令获得正确的舍入?

    有没有办法使用 i387 fsqrt 指令获得正确的舍入 除了改变精确模式在 x87 控制字中 我知道这是可能的 但这不是一个合理的解决方案 因为它存在令人讨厌的重入型问题 如果 sqrt 操作中断 精度模式将出错 我正在处理的问题如下 x
  • 防止GDB中的PLT(过程链接表)断点

    在最新版本的 GDB 中 在库函数调用上设置断点会导致多个实际断点 调用过程链接表 PLT 实际的函数调用 这意味着当调用库函数时 我们每次都会经历两次中断 在以前的 GDB 版本中 只会创建 2 因此您只能得到一次中断 那么问题来了 是否
  • 从事务范围调用 WCF 服务方法

    我有这样的代码 using TransactionScope scope TransactionScopeFactory CreateTransactionScope some methodes calls for which scope
  • 错误左值需要作为赋值C++的左操作数

    整个程序基本上只允许用户移动光标 如果用户位于给定的坐标范围 2 2 内 则允许用户键入输入 我刚刚提供了一些我认为足以解决问题的代码 我不知道是什么导致了这个问题 你能解释一下为什么会发生吗 void goToXY int int 创建一
  • 设计 Javascript 前端 <-> C++ 后端通信

    在我最近的将来 我将不得不制作一个具有 C 后端和 Web 前端的系统 要求 目前 我对此了解不多 我认为前端将触发数据传输 而不是后端 所以不需要类似 Comet 的东西 由于在该领域的经验可能很少 我非常感谢您对我所做的设计决策的评论
  • .NET JIT 编译的代码缓存在哪里?

    NET 程序首先被编译为 MSIL 代码 当它被执行时 JIT编译器会将其编译为本机机器代码 我想知道 这些JIT编译的机器代码存储在哪里 它只存储在进程的地址空间中吗 但由于程序的第二次启动比第一次快得多 我认为即使在执行完成后 该本机代
  • 从 C 线程调用 Python 代码

    我对从 C 或 C 线程调用 Python 代码时如何确保线程安全感到非常困惑 The Python 文档 http docs python org c api init html non python created threads似乎是
  • 如何访问窗口?

    我正在尝试使用其句柄访问特定窗口 即System IntPtr value Getting the process of Visual Studio program var process Process GetProcessesByNam
  • ASP.NET Core Razor Page 多路径路由

    我正在使用 ASP NET Core 2 0 Razor Pages 不是 MVC 构建系统 但在为页面添加多个路由时遇到问题 例如 所有页面都应该能够通过 abc com language 访问segment shop mypage 或
  • 如何获取 QIcon 的文件/资源​​路径

    假设我做了这样的事情 QIcon myIcon resources icon ico 我稍后如何确定该图标的路径 例如 QString path myIcon getPath 问题是 没有getPath 会员 我找不到类似的东西 但肯定有办
  • 在 C++ 和 Windows 中使用 XmlRpc

    我需要在 Windows 平台上使用 C 中的 XmlRpc 尽管我的朋友向我保证 XmlRpc 是一种 广泛可用的标准技术 但可用的库并不多 事实上 我只找到一个库可以在 Windows 上执行此操作 另外一个库声称 您必须做很多工作才能
  • 使用 Chrome 和 Selenium 设置 LocalStorage

    我正在尝试使用 OpenQA Selenium 和 Chrome 设置本地存储键和值 我认为这相当微不足道 但我似乎无法让它发挥作用 我对 C 很陌生 所以我可能错过了一些东西 无论如何 我有这个功能 public static void
  • c# 模拟 IFormFile CopyToAsync() 方法

    我正在对一个异步函数进行单元测试 该函数将 IFormFile 列表转换为我自己的任意数据库文件类列表 将文件数据转换为字节数组的方法是 internal async Task

随机推荐

  • 在 Visual Studio 2008 中构建解决方案后,是否可以运行外部可执行文件?

    我不是在谈论项目的构建后事件 相反 我想在构建整个解决方案后自动运行可执行文件 有没有办法为解决方案执行构建后事件 Visual Studio 2010 及之前版本 您可以在宏编辑器中通过处理 OnBuildDone 来执行此操作 该事件为
  • 在模板中显示 Handlebars.js 上下文

    是否有一个变量传递到每个handlebar js 模板中 其中包含模板可访问的所有上下文内容 例如我正在创建一个模板 但我不知道该模板可访问的所有上下文内容 我希望能够在模板中输入内容 debug 并且handlebars js会将所有上下
  • 解析 XML Libxmljs (Node.js)

    我正在尝试解析 XML 字符串libxmljs https github com polotek libxmljs https github com polotek libxmljs 不过我有一些问题 我需要将逻辑应用于我正在解析的内容 并
  • 在 Javascript 中绘制可缩放的音频波形时间线

    我有来自歌曲的原始 44 1 kHz 音频数据作为 Javascript 数组 我想用它创建一个可缩放的时间线 Audacity 的时间表示例 由于有数百万个时间点 普通的 Javascript 图形库可能无法解决它 我认为 不确定 普通的
  • Dialogflow 中“意图”和“操作”之间的关系是什么?

    我在概念化 Dialogflow 代理中的 意图 和 操作 之间的关系时遇到了一些麻烦 我了解到意图将用户的口头请求映射到我的履行服务的特定功能 并可选择携带参数作为输入变量 这就是意图的定义方式官方文档 https dialogflow
  • 角度类型的BehaviorSubject

    假设我有一个模型用户 我想创建一个 User 类型的BehaviorSubject 如下所示 private userSource new BehaviorSubject
  • 在Powershell中,如何等待并行作业完成后再继续?

    基于如何并行执行PowerShell函数多次 https stackoverflow com questions 12766174 how to execute a powershell function several times in
  • Pandas 按 Zscore 过滤每组异常

    我有一个数据框 其中的 组 列可以有 50 个不同的值 还有一个数字 值 列 一个例子可以是 pd DataFrame group a b c a a b a c c value 2 123 4 2 3 2 5 127 128 4 0 00
  • 如何在sparkR中绑定两个数据框列?

    如何在spark 1 4的SparkR中绑定两列dataframe 蒂亚 阿伦 没有办法做到这一点 这是一个关于scala中的spark 1 3 的问题 能够做到这一点的唯一方法是使用某种 row numbering 因为这样您就可以加入
  • Rails 用范围扩展领域,PG 不喜欢它

    我有一个小部件模型 小部件属于 Store 模型 Store 模型属于 Area 模型 Area 模型属于 Company 在公司模型中 我需要找到所有关联的小部件 简单的 class Widget lt ActiveRecord Base
  • 如何子类化 UITextField 并重写 drawPlaceholderInRect 来更改占位符颜色

    我有一个 3UITextField与占位符文本集 在其中之一UITextField我希望占位符文本为红色 现在 在谷歌搜索之后 似乎最好的方法是子类化 UITextField 并覆盖drawPlaceholderInRect 我如何进行子类
  • 在只有一个键的哈希中查找键名?

    如果我有一个哈希 my h secret gt 1 我知道这只是哈希中的一个键 但我不知道它叫什么 然后我是否必须迭代该哈希 my key foreach my i keys h key h i 或者有更好的方法来获取密钥的名称吗 A 列表
  • 如何从另一个分支获取一个文件

    我有一个main带有名为的文件的分支app js 我对此文件进行了更改experiment branch 我只想应用所做的更改app js from experiment到main branch git checkout main firs
  • mov ah、word_variable 上的“无效指令操作数”以及在 16 位数字上使用 imul

    这是我想要实现的目标 a x b x a y b y a z b z 我正在尝试在汇编中创建一个宏来执行上述计算 我在用WORDs 代表我所有的号码 这是我的代码 dotProduct MACRO A X A Y A Z B X B Y B
  • 在沙箱中运行插件

    我正在设计一个 C C 系统 可以使用各种插件进行扩展 有一个定义良好的 C 公共 API 主要适用于 const char 和其他指针类型 插件被编译成 so 或 dll 文件 主应用程序在启动时加载它们 然后根据请求卸载或重新加载它们
  • Java 的单文件、持久、排序键值存储(Berkeley DB 的替代方案)[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Berkeley DB JE 许可可能是交易杀手 我有一个面向一小部分客户的 Java 应用程序 但由
  • 如何使 .NET 反射与动态生成的对象一起工作? [复制]

    这个问题在这里已经有答案了 看下面的例子 void Main APPROACH 1 With an anonymous type var myObject new Property1 PropertyValue1 WORKS Propert
  • 如何防止 EMR Spark 步骤重试?

    我有一个 AWS EMR 集群 emr 4 2 0 Spark 1 5 2 我在其中从 aws cli 提交步骤 我的问题是 如果 Spark 应用程序失败 则 YARN 会尝试再次运行该应用程序 在相同的 EMR 步骤下 我怎样才能防止这
  • PHP 日期转换为 strtotime

    我有一个array其中每条记录都有一个 date 场地 日期的格式如下 10 09 2015 当我使用strtotime在这些日期 其中一些结果是false 我认为数据结构中有错误 所以我创建了这个简单的array和一个简单的foreach
  • C++:cin while cout [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 好吧 我正在用 C 编写一个聊天程序 以便在 Linux 终端中使用 我希望在打字时也能收到消息 基本上 非阻塞cin