gpt4 book ai didi

c++ - 使用 stringstream 将动态大小的字符串转换为整数

转载 作者:行者123 更新时间:2023-11-28 00:47:49 26 4
gpt4 key购买 nike

我正在尝试通过使用 stringstream 转换用户给定的字符串来将 int 值添加到 vector 中。用户给出这样的数据:1,5,6,7,4 所以我永远不知道到底会有多少个 int。

现在我只得到第一个输入的数字。其余的被忽略。这就是我想要的:

stringstream ss;
int tmpInt;
string data;

cout << "Enter data: (1,2,3,4 etc.)";
getline(cin, data);

ss.str(data);

while(ss >> tmpInt)
{
myList.addValue(tmpInt);
}

最佳答案

您需要确保忽略逗号:

while(ss >> tmpInt)
{
myList.addValue(tmpInt);
ss.ignore();
}

目前,提取将尝试读取一个整数,发现有一个逗号,并将流保持在失败状态。

或者,如果你想检查字符是否真的是一个逗号(为了输入验证),你可以这样做:

while(ss >> tmpInt)
{
myList.addValue(tmpInt);
if (ss.get() != ',') break;
}

关于c++ - 使用 stringstream 将动态大小的字符串转换为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15581621/

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