c++ - 忽略流中输入字符的最佳方法
问题描述
给定输入:和const char input[] = "lorem\t, ipsum"
预期输出:我可以这样做:char first[size(input)]
second[size(input)]
sscanf(input, "%s , %s", first, second);
忽略空格和带有 . 的分隔符,
。我想对流做同样的事情,但我能想到的最好的是:
istringstream foo(input);
foo >> first;
foo.ignore(numeric_limits<streamsize>::max(), ',');
foo >> second;
我真正想要的是更像是:
istringstream(input) >> first >> ',' >> second;
但显然这是违法的。我想过:
- 将分隔符提取到的虚拟值
- 一个正则表达式迭代器
我不知道是否有更优雅的解决方案,我当然喜欢我可以内联做的事情,类似于sscanf
解决方案。
解决方案
推荐阅读
- neo4j - 在 Neo4J 中,当我尝试合并时,我不断收到 Neo.DatabaseError.General.UnknownError
- python - 将值更改为字符串 Python 中的转换器 Int64
- javascript - 连续文本框验证
- c# - 从一行中选择值 - RadGridView C#
- can-bus - 如何使用 CAPL 程序发送消息
- python - 如何在不分隔字符的情况下打印枚举列表(带有字符)
- c# - ASP.NET:将消息从控制器传递到视图(ViewBag、ViewData 或 TempData)
- php - 如何将动态变量从 PHP 语法转换为 twig
- typescript - Typescript - Morgan 和 logger.stream 导致 lint 错误
- java - Android搜索过滤器在没有结果时显示文本视图