c - 如何在 C 中解析 char 缓冲区?
问题描述
所以这是我拥有的 char 缓冲区:
Manual: h:0147(0051.6) v:0842(0296.0) H:0114(0040.0) V:0697(0245.0)
请注意,这个缓冲区不一定是空终止的。
我想要做的是从括号中获取最后两个数字()
。
我打算使用sscanf()
这样的:
sscanf(buffer, "H:%4d(%f) V:%4d(%f)", &num1, &num2, &num3, &num4);
但我相信这是不可能的,因为它不是空终止的?
我怎么可能从中得到这两个浮点数以供以后使用?
一种方法是,由于缓冲区仍然是相同的大小和格式,只有数字发生变化,只使用索引来获取它,但我认为必须有更好的方法。
解决方案
感谢@Barmar 和@RemyLebeau 的帮助。
问题的解决方法如下
sscanf(buffer, "%*[^H]H:%4d(%f) V:%4d(%f)", &num1, &num2, &num3, &num4);
像魅力一样工作
推荐阅读
- python - 当我的输入有效时,为什么删除“自我”会导致错误?
- node.js - 无法使用 axios 将 jwtToken 从反应客户端发送到节点/快递后端
- java - OnResume 似乎有时在 dialog.dismiss() 和 finish() 之间被调用
- python-3.x - 无法导入 fancyimpute Jupyter Notebook
- html - 如何单击 CSS 文本溢出省略号以在弹出窗口中显示长文本?
- slack - Can slack 频道链接不可见
- javascript - 在 Angular 中将同步函数修改为异步函数
- reactjs - “在'@superset-ui/core'中找不到导出'Metric'(./node_modules/@superset-ui/chart-controls/esm/types.js 中的错误)Angular/React
- django - 为什么 Django 检索所有反向异物
- javascript - 如何在 nuxt auth 模块中发送 refreshToken 和 token?