Istream 最多消耗 N 个空白字符

发布于 2024-11-03 19:28:26 字数 109 浏览 4 评论 0原文

是否可以告诉 std::istream 在应用运算符>>时仅消耗固定数量(即1)的空白字符?我有一个想要解析为参数的字符串,但某些参数为空,这导致后续调用operator>>失败。

Is it possible to tell a std::istream to only consume a fixed number (namely, 1) of whitespace characters when applying the operator>>? I have a string I'd like to parse into parameters, but some of the parameters are empty, which is causing subsequent calls to operator>> to fail.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

羞稚 2024-11-10 19:28:26

尝试 std::noskipws

std::cin >> std::noskipws;
char ws;
std::string firstField, secondField, thirdField;
std::cin >> firstField >> ws >> secondField >> ws >> thirdField;

或者,您可以将整行转换为字符串(请参阅 std::getline ),然后 用 Boost 分割< /a>.

Try std::noskipws :

std::cin >> std::noskipws;
char ws;
std::string firstField, secondField, thirdField;
std::cin >> firstField >> ws >> secondField >> ws >> thirdField;

Or, you could slurp the entire line into a string (see std::getline), and then split it with Boost.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文