如何检测 scanf() 末尾的空格或换行符?

2023-12-25

我正在编写一个程序,我必须接受来自用户的命令,就像用户可以在其中设置环境变量值的 shell 一样。我遇到的问题是如果用户输入set var var-value我需要知道用户输入了一个空格而不仅仅是set并按下 Enter 键,这是一个不同的命令。如何确定用户是否按下空格或输入使用scanf()?


您会知道用户按下了 Enter 键,因为scanf()在用户这样做之前不会返回。如果您尝试在用户键入时实时读取字符,scanf()不会为你工作。您将需要使用getchar(), getch() or getche()函数,或操作系统提供的用于读取键盘输入的函数。将字符一一读取到数组中,在读取时扫描空格和回车键。

也可以看看这个问题 https://stackoverflow.com/questions/421860/c-c-capture-characters-from-standard-input-without-waiting-for-enter-to-be-pr.

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

如何检测 scanf() 末尾的空格或换行符? 的相关文章

  • WPF DataGrid 多选

    我读过几篇关于这个主题的文章 但很多都是来自 VS 或框架的早期版本 我想做的是从 dataGrid 中选择多行并将这些行返回到绑定的可观察集合中 我尝试创建一个属性 类型 并将其添加到可观察集合中 它适用于单个记录 但代码永远不会触发多个
  • STL 迭代器:前缀增量更快? [复制]

    这个问题在这里已经有答案了 可能的重复 C 中的预增量比后增量快 正确吗 如果是 为什么呢 https stackoverflow com questions 2020184 preincrement faster than postinc
  • 没有特殊字符的密码验证器

    我是 RegEx 的新手 已经进行了大量搜索 但没有找到任何具体内容 我正在编写一个验证密码字符串的正则表达式 可接受的字符串必须至少具有 4 种字符类型中的 3 种 数字 小写字母 大写字母 特殊字符 我对包含有一个想法 也就是说 如果这
  • 机器Epsilon精度差异

    我正在尝试计算 C 中双精度数和浮点数的机器 epsilon 值 作为学校作业的一部分 我在 Windows 7 64 位中使用 Cygwin 代码如下 include
  • std::vector 与 std::stack

    有什么区别std vector and std stack 显然 向量可以删除集合中的项目 尽管比列表慢得多 而堆栈被构建为仅后进先出的集合 然而 堆栈对于最终物品操作是否更快 它是链表还是动态重新分配的数组 我找不到关于堆栈的太多信息 但
  • 如何在 C# 中打开 Internet Explorer 属性窗口

    我正在开发一个 Windows 应用程序 我必须向用户提供一种通过打开 IE 设置窗口来更改代理设置的方法 Google Chrome 使用相同的方法 当您尝试更改 Chrome 中的代理设置时 它将打开 Internet Explorer
  • 为什么 GCC 不允许我创建“内联静态 std::stringstream”?

    我将直接前往 MCVE include
  • 如何使从 C# 调用的 C(P/invoke)代码“线程安全”

    我有一些简单的 C 代码 它使用单个全局变量 显然这不是线程安全的 所以当我使用 P invoke 从 C 中的多个线程调用它时 事情就搞砸了 如何为每个线程单独导入此函数 或使其线程安全 我尝试声明变量 declspec thread 但
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • 方程“a + bx = c + dy”的积分解

    在等式中a bx c dy 所有变量都是整数 a b c and d是已知的 我如何找到整体解决方案x and y 如果我的想法是正确的 将会有无限多个解 由最小公倍数分隔b and d 但我只需要一个解决方案 我可以计算其余的 这是一个例
  • ASP.NET Core 3.1登录后如何获取用户信息

    我试图在登录 ASP NET Core 3 1 后获取用户信息 如姓名 电子邮件 id 等信息 这是我在登录操作中的代码 var claims new List
  • 如何在 Linq to SQL 中使用distinct 和 group by

    我正在尝试将以下 sql 转换为 Linq 2 SQL select groupId count distinct userId from processroundissueinstance group by groupId 这是我的代码
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • 使用特定参数从 SQL 数据库填充组合框

    我在使用参数从 sql server 获取特定值时遇到问题 任何人都可以解释一下为什么它在 winfom 上工作但在 wpf 上不起作用以及我如何修复它 我的代码 private void UpdateItems COMBOBOX1 Ite
  • 对于某些 PDF 文件,LoadIFilter() 返回 -2147467259

    我正在尝试使用 Adob e IFilter 搜索 PDF 文件 我的代码是用 C 编写的 我使用 p invoke 来获取 IFilter 的实例 DllImport query dll SetLastError true CharSet
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • 当文件流没有新数据时如何防止fgets阻塞

    我有一个popen 执行的函数tail f sometextfile 只要文件流中有数据显然我就可以通过fgets 现在 如果没有新数据来自尾部 fgets 挂起 我试过ferror and feof 无济于事 我怎样才能确定fgets 当
  • C++ 中的参考文献

    我偶尔会在 StackOverflow 上看到代码 询问一些涉及函数的重载歧义 例如 void foo int param 我的问题是 为什么会出现这种情况 或者更确切地说 你什么时候会有 对参考的参考 这与普通的旧参考有何不同 我从未在现
  • 类型或命名空间“MyNamespace”不存在等

    我有通常的类型或命名空间名称不存在错误 除了我引用了程序集 using 语句没有显示为不正确 并且我引用的类是公共的 事实上 我在不同的解决方案中引用并使用相同的程序集来执行相同的操作 并且效果很好 顺便说一句 这是VS2010 有人有什么

随机推荐

  • 结果不一致 (C)?

    在此程序中 我编写了多个公式 对于一个公式 我得到了不一致的结果 尽管每次运行的代码和输入都是相同的 有问题的函数是 WqFormula 在某些运行中 我得到正确的结果 即 0 041667 而在其他运行中 我得到 0 000000 我正在
  • int main() 有什么问题?

    我无法计算我在外面和这里看到的 C 代码的次数 它定义了main as int main 当我编译它时 gcc ansi pedantic Wstrict prototypes Werror foo c 它出错了 foo c 2 warni
  • 编写 Gradle 脚本来运行 Eclipse Android 测试项目的单元测试用例

    我有一个简单的 HelloWorld Android 项目 在 Eclipse IDE 中构建 我能够在该项目的 cmd 提示符中成功执行 gradle build 我还为其编写了一个简单的 JUnit Android 测试项目 并且它在
  • 如何将经度、纬度、高程转换为笛卡尔坐标?

    我下载了天气数据 它有经度 十进制 纬度 十进制 和海拔 米 值 没有有关所使用的坐标系的信息 我如何将其转换为笛卡尔坐标 我的尝试如下 但是 我的问题是找到正确的公式 def cartesian self longitude latitu
  • 如何使用 easywebdav 通过 python 连接到 owncloud?

    我正在尝试连接到owncloud与 python 的实例 我找到了easywebdav这应该可以很容易地通过 webdav 连接 但是当尝试连接时 我收到 404 Not Found import easywebdav webdav eas
  • 如何用CSS实现单行省略号

    我希望能够在响应式设计中添加三个点并将文本保留在一行中 例如 我有一个链接 其中包含容器元素内的链接 例如 span 如果文本很长 它将在小屏幕上分两行显示 This is a very long text and it wraps bec
  • 如何在 JSF 中将对象从一个页面传递到另一个页面而不编写转换器

    首先对我的英语感到抱歉 我在 JSF2 中有两个页面 一个用于列出乘客 另一个用于创建 更新乘客 我还有两个 ViewScoped bean 一个包含乘客列表 另一个用于在 pageB 中保留所选乘客 我看到了通过 viewParam 或
  • 如何在 ASP.NET/C# 中检查 URL 的顶级域?

    假设 www mysite fr home 是 URL 现在如何从中获取 fr 只是 fr 实际上我想做的是在检测到访问者的国家 地区后在运行时更改母版页 是的 我可以使用其他类中存在的countryCode变量 但也许我只能这样做 只是想
  • C#(锐利)从txt文件中读取随机行[重复]

    这个问题在这里已经有答案了 谁能告诉我如何从txt文件中读取随机行 我想从 txt 文件中读取随机行并在文本框中仅显示该行 代码示例会很棒 感谢转发 var lines File ReadAllLines path var r new Ra
  • jQuery UI - 加速自动完成

    我的自动完成功能运行良好 但我正在尝试找出使其更快的方法 这是我的 HTML Country
  • LyX 中的 Zed 表示法

    是否可以在 LyX 中创建 Zed 表示法方案 如何做呢 解决了 我通过 MikTeX 安装了 zed csp 样式包 然后 在 LyX 我去了Document gt Settings gt Latex Preamble并添加了 usepa
  • 如何捕获回滚异常

    对 catch 子句中已存在的 SqlTransaction RollBack 实现错误处理的最佳方法是什么 我的代码大致是这样的 using SqlConnection objSqlConn new SqlConnection connS
  • 如何在C#项目中实现和进行OCR?

    我已经搜索了一段时间 并且看到了一些 OCR 库请求 我想知道如何实现最纯粹 易于安装和使用的 OCR 库 并提供安装到 C 项目的详细信息 如果可能的话 我只想像通常的 dll 引用一样实现它 Example using org pdfb
  • 尝试将 yaml 数据转换为结构时输出为空[重复]

    这个问题在这里已经有答案了 我正在尝试将 yaml 数据转换为结构并打印它 我得到的这个程序的输出是空的 package main import fmt gopkg in yaml v2 type example struct variab
  • 当 size < 1 时,geom_sf 大小参数不起作用

    问题 我正在尝试使用 sf 包创建美国州 县的地图 并且geom sf 来自 ggplot2 但我无法得到size多边形边界线宽度的参数geom sf 正确创建细线时size lt 1 e g ggplot sf obj gt geom s
  • 将平面对象数组转换为嵌套对象

    我有以下数组 实际上来自后端服务 const flat Item id a name Root 1 parentId null id b name Root 2 parentId null id c name Root 3 parentId
  • C++ time_t 问题

    我在 C VS 2008 中的日期管理方面遇到问题 根据MSDN 规范 http msdn microsoft com en us library 323b6b3k 28v VS 90 29 aspx time t代表 自 1970 年 1
  • Erlang ping 节点问题

    我在 erlang shell 中做了 1 gt node nonode nohost But 2 gt net adm ping node pang 为什么 什么问题 为什么不打乒乓球 谢谢 你没有启动 Erlang name or sn
  • 使用 k 均值算法进行异常值检测

    我希望你能帮助我解决我的问题 我正在尝试使用 kmeans 算法来检测异常值 首先 我执行算法并选择那些距聚类中心距离较远的对象作为可能的异常值 我不想使用绝对距离 而是想使用相对距离 即对象到聚类中心的绝对距离与聚类中所有对象到其聚类中心
  • 如何检测 scanf() 末尾的空格或换行符?

    我正在编写一个程序 我必须接受来自用户的命令 就像用户可以在其中设置环境变量值的 shell 一样 我遇到的问题是如果用户输入set var var value我需要知道用户输入了一个空格而不仅仅是set并按下 Enter 键 这是一个不同