gpt4 book ai didi

C++提取具有多个定界符的字符串中的整数

转载 作者:行者123 更新时间:2023-11-27 23:57:06 24 4
gpt4 key购买 nike

我正在尝试从字符串中提取整数。这里有什么问题?我只得到第一个值。即使字符串中有零,我怎样才能让它工作?

string str="91,43,3,23,0;6,9,0-4,29,24";
std::stringstream ss(str);
int x;
while(ss >> x)
{
cout<<"GOT->"<<x<<endl;
char c;
ss >> c; //Discard a non space char.
if(c != ',' || c != '-' || c != ';')
{
ss.unget();
}
}

最佳答案

仔细观察这一行:

if(c != ',' || c != '-' || c != ';')

请注意,此条件始终为真,因此您始终取消标点符号。下一次读取将始终失败,因为它在预期数字时读取标点符号。将 || 更改为 && 应该可以解决问题。

当然,您的代码假定 str 以一种非常特殊的方式格式化,并且在给定不同格式的 str 值时可能会中断。请注意这一点。

关于C++提取具有多个定界符的字符串中的整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41820639/

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