提供 cin 输入的默认值

2023-12-05

我的应用程序使用读取用户输入std::cin溪流。 在一个地方,我想提供默认输入并让用户按原样接受它(通过按 Enter 键)或在继续之前修改它(通过使用退格键删除旧字符并添加新文本)。

我知道字符可以直接放入cin.rdbuf,但这并不是我想要实现的目标。 我想将字符放入控制台窗口中等待用户输入时控制台光标所在的位置,并且在用户接受它们之前不要读取它们。用户还应该能够删除它们并编写自己的文本。

可以使用这样的东西来实现吗cin或者我是否必须通过读取单个字符并重新绘制控制台内容来模拟这一点?


不,这样的事情不能用std::cin。其读取缓冲区直接从标准输入读取。标准输入是“熟的”字符流。所有编辑完全由操作系统的终端控制台处理,然后按Enter结果在您的应用程序中std::cin读取输入的文本。

传统的方法是简单地在提示本身中指示默认输入值,并在输入为空时使用默认值,例如:

std::string buffer;

std::cout << "What color is the sky [blue]? ";

std::getline(std::cin, buffer);

if (buffer.size() == 0)
      buffer="blue";
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

提供 cin 输入的默认值 的相关文章

  • IIS应用程序池回收+quartz调度

    我正在 IIS 7 5 上运行一个 Web 应用程序 它需要偶尔回收 否则内存使用情况会失控 这是我正在研究的问题 当它回收时 它实际上不会运行 直到另一个请求到来 而quartz不会运行 有没有办法让IIS在回收应用程序池后立即自动启动1
  • 使用 CLion 进行 OpenCV Windows 设置

    我想在 Windows 上为 CLion IDE 设置 OpenCV 我尝试使用 OpenCV 3 1 和 2 4 得到相同的结果 我有 Windows 10 64 位 CLion 使用 cygwin 环境 到目前为止我做了什么 1 从Op
  • 在路由mvc 4中添加公司名称

    我一直在尝试为 Facebook 等用户提供在 URL 中添加公司名称的选项 http localhost 50753 MyCompany Login 我尝试过不同的网址 但没有成功 routes MapRoute name Default
  • 将完整模板参数值映射到原始类型

    我想将数字映射到类型 在这个例子中 我将创建一个函数 将 sizeof 结果映射到有符号的原始类型 我想知道是否有更好的方法来完成我在现代 C 中所做的事情 即采用模板化值并将其转换为类型 现在 这可以将大小转换为已知类型 但我似乎无法在标
  • 检测到堆栈崩溃

    我正在执行我的 a out 文件 执行后 程序运行一段时间 然后退出并显示消息 stack smashing detected a out terminated Backtrace lib tls i686 cmov libc so 6 f
  • 在开关中使用“goto”?

    我看到了一个建议的编码标准 内容如下Never use goto unless in a switch statement fall through 我不跟 这个 例外 案例到底是什么样的 这证明了goto 此构造在 C 中是非法的 swi
  • Gwan C#,如何获取HTTP标头?

    我需要它来重写 url 以了解我正在处理哪个友好的 url 用于用户代理和其他东西 EDIT public class Gwan MethodImplAttribute MethodImplOptions InternalCall exte
  • C# 5 async/await 线程机制感觉不对?

    为什么让调用线程进入异步方法直到内部 等待 一旦调用异步方法就生成一个线程 这不是更干净吗 这样您就可以确定异步方法会立即返回 您不必担心在异步方法的早期阶段没有做任何昂贵的事情 我倾向于知道某个方法是否要在 我的 线程上执行代码 不管是堵
  • 计算另一个表达式中的 C# 表达式

    我想在另一个表达式中使用一个表达式 Expression
  • 一元 +/- 运算符如何可能导致“-a”或“+a”中的整数提升,“a”是算术数据类型常量/变量?

    这句看似微不足道的台词摘自我的迈克 巴纳汉和布雷迪的 C 书 第 2 8 8 2 节 http publications gbdirect co uk c book chapter2 expressions and arithmetic h
  • 使用查询表达式对 List 进行排序

    我在使用 Linq 订购这样的结构时遇到问题 public class Person public int ID get set public List
  • 增强精神、递归和堆栈溢出

    为什么下面的代码在运行时崩溃 它会给出堆栈溢出错误 include
  • MFC:如何设置CEdit框的焦点?

    我正在开发我的第一个简单的 MFC 项目 但我正在努力解决一个问题 想要设置所有的焦点CEdit其中一个对话框中的框 我的想法是 当打开对话框时 焦点位于第一个编辑框上 然后使用 选项卡 在它们之间交换 我看到了方法SetFocus 但我无
  • 如何在三个 IEnumerable 上使用 Zip [重复]

    这个问题在这里已经有答案了 可能的重复 使用 Linq 从 3 个集合创建项目 https stackoverflow com questions 5284315 create items from 3 collections using
  • Project Euler #8,我不明白我哪里出了问题[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我正在做项目欧拉第八题 https projecteuler net problem 8 其中我得到了这个大得离谱的数字 7316
  • 使用 GCC 生成可读的程序集?

    我想知道如何使用GCC http en wikipedia org wiki GNU Compiler Collection在我的 C 源文件中转储机器代码的助记符版本 这样我就可以看到我的代码被编译成什么 你可以使用 Java 来做到这一
  • 英文日期差异

    接近重复 如何计算相对时间 https stackoverflow com questions 11 how do i calculate relative time 如何在 C 中计算某人的年龄 https stackoverflow c
  • 从浏览器访问本地文件?

    您好 我想从浏览器访问系统的本地文件 由于涉及大量安全检查 是否可以通过某种方式实现这一目标 或使用 ActiveX 或 Java Applet 的任何其他工作环境 请帮帮我 要通过浏览器访问本地文件 您可以使用签名的 Java Apple
  • 为什么以下 C 程序会出现总线错误?

    我认为这是第一个失败的 strtok 调用 好久没写C了 有点不知所措 非常感谢 include
  • DataContractSerializer 事件/委托字段问题

    在我的 WPF 应用程序中 我正在使用DataContractSerializer序列化对象 我发现它无法序列化具有事件或委托声明的类型 考虑以下失败的代码 Serializable public abstract class BaseCl

随机推荐

  • 为什么运行时将泛型类型显示为“GenericType`n”?

    为什么它不显示真实类型 例如 List而不是List 1 这个奇怪的 对我来说 符号从何而来 泛型的 CLR 名称List
  • CSS:将复选框设置为看起来像按钮,有悬停吗?

    我创建了一个看起来很小的按钮来显示而不是复选框 我想知道是否有办法以某种方式也有 hover 外观 HTML div div
  • 使用 HtmlUnit 获取页面源:URL 卡住了

    我正在尝试使用 Html Unit get 方法获取以下 URL 的页面源 http denydesigns com collections barbara sherman fleece throw blanket products bar
  • 在python中使用AES进行图像加密

    我使用 AES 算法加密图像并得到结果 但我不确定编程是否正确 我需要帮助检查代码 import numpy as np import random from Cryptodome Cipher import AES from Crypto
  • 使用 HttpClient4 上传文件时设置标头“Content-Type”时出现问题

    我正在尝试将文件 或多个文件 上传到我的 servlet 该 servlet 使用 Apache 文件上传来处理和获取发布的文件 当我使用以下代码时 一切顺利 文件已发送和接收 DefaultHttpClient client new De
  • 在 Nuxt 组件中使用花括号导入

    我正在尝试在 Nuxt 组件中导入 Three js
  • DataGridTemplateColumns、AutoGenerateColumns=true 并绑定到 DataTable

    我正在与一系列问题作斗争 我有一个动态数据集 我手动将其组装成数据表 我必须自动生成列 因为数据不是静态的 我需要将组合框的 ItemsSource 绑定到每个单元格中定义的 Observable 集合 虽然我认为这很容易 但 ComboB
  • 通过微型应用对可穿戴设备上的通知进行分组

    我为可穿戴设备构建了一个微型应用程序 现在我正在处理设备上的通知 这是我的示例代码 NotificationCompat Builder builder new NotificationCompat Builder context setC
  • Apache 和 CentOS 中的默认会话超时

    任何人都可以帮我找出 apache 和 CentOS 中的默认会话超时 这来自 php 中php ini而不是 apache 或操作系统 默认值为 1440 以秒为单位 即 24 分钟 但这取决于您的托管提供商 您正在寻找的具体设置是 se
  • Spring Data REST:自定义方法验证

    我正在尝试使用Spring Data REST带有注释的存储库 RepositoryRestResource注释与自定义方法实现一起 有2种情况 1 我有 REST 存储库 注释为 RepositoryRestResource映射到 use
  • 使用字节数据类型时 JAVA 中的精度损失

    byte b 9 b b 6 给出编译错误 可能会损失精度 为什么b 9不给出错误 而b b 9造成精度损失 有人告诉我9 或任何数字 被视为int因此损失精度 但那为什么呢b 9不会给出任何精度损失误差吗 也当写成b 6 代码不会给出任何
  • DDD - 实体不能直接访问存储库的规则

    在领域驱动设计中 似乎有lots of 协议实体不应直接访问存储库 这是来自埃里克 埃文斯吗领域驱动设计书上的 还是从别的地方来的 对于其背后的推理 哪里有一些好的解释 编辑 澄清一下 我不是在谈论将数据访问与业务逻辑分离到单独层的经典 O
  • 如何在改造Android中发送对象数组?

    我有一个要在服务调用中传递的以下对象数组 ParkingSpace sid WorldSensing vhu6lom3sovk6ahpogebfewk5kqadvs4 5385fc250cf2497dfe5679d1 ParkingSpac
  • CakePHP 3.0 没有 intl 扩展就无法运行

    我正在尝试在共享主机上安装并运行 CakePHP 3 0 项目 然而 CakePHP 3 0 需要php intl扩展 但托管提供商拒绝我安装 启用intl共享主机上的扩展 我怎样才能运行 CakePHP 3 0 而不intl扩大 有没有办
  • NetBeans。禁用错误检查下划线

    如何在 NetBeans 6 9 1 中禁用错误 检查 源代码中出现红线是很烦人的 这类似于NetBeans 关闭 红色波浪下划线 如何 但我想完全禁用下划线 而不仅仅是在打字时 它错误地解析 PHP 源并忽略语法错误 Netbeans 有
  • 比较 Python Pandas DataFrame 的匹配行

    我有这个数据框 df1 在熊猫中 df1 pd DataFrame np random rand 10 4 columns list ABCD print df1 A B C D 0 860379 0 726956 0 394529 0 8
  • SSL 错误/RSA 预主密钥错误

    有人知道 PayPal 沙箱中遇到的错误是什么问题吗 上次运行良好几个月 我们更换了服务器 IPN 停止运行 我们不确定是 PayPal 问题还是我们的问题 在 Web 服务器访问日志中 没有显示 PayPal IPN POST 日志条目
  • 将 MultiLabelDataset 转换为 Guava Multimap 以进行打印/检查

    我正在使用以下程序 public static void main String args throws Exception String input args 0 InputStream is new BufferedInputStrea
  • 局部变量需要声明为final

    我收到错误 局部变量框是从内部类内部访问的 需要声明为最终的 这看起来不错 但我真的不认为这是最好的解决方案 所以我希望其他人可以帮助我 这是我的代码 public void showPublisherBox JComboBox box i
  • 提供 cin 输入的默认值

    我的应用程序使用读取用户输入std cin溪流 在一个地方 我想提供默认输入并让用户按原样接受它 通过按 Enter 键 或在继续之前修改它 通过使用退格键删除旧字符并添加新文本 我知道字符可以直接放入cin rdbuf 但这并不是我想要实