【发布时间】:2021-07-16 22:23:16
【问题描述】:
假设我有
istringstream input("x = 42\n"s);
我想使用 std::istream_iterator<std::string> 迭代这个流
int main() {
std::istringstream input("x = 42\n");
std::istream_iterator<std::string> iter(input);
for (; iter != std::istream_iterator<std::string>(); iter++) {
std::cout << *iter << std::endl;
}
}
我按预期得到以下输出:
x
=
42
是否可以有相同的迭代跳过空格但没有换行符?所以我想拥有
x
=
42
\n
【问题讨论】:
-
在输入中使用
\\n?实际上,您希望将值为\n(ascii 中值为10)的字符转换为字符\和n。 -
@Justin 但这会在最后一次迭代中给出 42\n - 但我想要一个换行符
标签: c++ istream-iterator