gpt4 book ai didi

c++ - 提取运算符到非数字字符

转载 作者:太空狗 更新时间:2023-10-29 21:10:50 24 4
gpt4 key购买 nike

给定一个 istringstream,是否有可能将其内容“提取”到一个字符中只有当要提取的字符是非数字的(即不是 0-9 )?

比如这个

string foo = "+ 2 3";
istringstream iss(foo);

char c;
iss >> skipws >> c; //Do this only if c would be non-numeric

应该提取 '+',但是如果 foo"2 + 3",它不应该提取任何东西,因为第一个[非空白] 字符是 '2'数字。

为了提供一些上下文,我需要它来制作一个递归的“普通波兰符号”(即前缀符号)解析器。

最佳答案

您可以使用 unget如果字符是数字,则放回字符。

string foo = "+ 2 3";
istringstream iss(foo);

char c;
iss >> skipws >> c;
if (std::isdigit(c)) iss.unget();

关于c++ - 提取运算符到非数字字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52457111/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com