c++ - 如何在 std::getline 中自定义分隔符
问题描述
我正在解决hackerRank上的属性解析器,但我被分隔符困住了。我想从(“任何东西”)中获取一个元素,在这种情况下它会给我(任何东西),但是当我这样做时:
while (getline(ob, item, '""')) {//but its be true when i put single one ('"')
std::cout << item << "\n";
}
它给了我这个错误:
E0304 没有“getline”实例与参数列表匹配
解决方案
正如@RetiredNinja 所说,您可以'\"'
用作分隔符。代码可能如下所示:
#include <iostream>
#include <string>
int main()
{
std::string str;
while (std::getline(std::cin, str, '\"'))
if (!str.empty() && str[0] != '(' && str[0] != ')')
std::cout << '(' << str << ")\n";
}
您可以根据问题的规则更改代码。请注意,分隔符会"("
首先给您,然后是实际的单词,依此类推。所以你必须过滤你不感兴趣的值。
推荐阅读
- ios - AVPlayer 不通过蓝牙耳机输出音频
- mongodb - 我无法连接到我在 docker compose 中运行的 MongoDB
- r - R 函数/循环:当数值变量低于某个值(例如 40)时,需要多长时间才能回到 40 以上?
- typescript - MUI5 主题感知 sx 道具和类型检查
- jenkins - Wanrings 下一代 CppCheck
- python - 从字符串中提取换行符文本
- python - 将嵌套字典结构转换为 Pandas 数据框?
- vba - 如何将附件文件保存到目录并保留文件扩展名?
- sockets - 将接近传感器连接到计算机
- python - 文件加密时 Tkinter 滞后