给定输入:和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
解决方案。