gpt4 book ai didi

C++ 读入一行字符串作为整数?

转载 作者:行者123 更新时间:2023-11-27 22:54:16 26 4
gpt4 key购买 nike

我正在尝试读取一行带有数字的字符串字符(例如“30 40 50 20”)并将它们放入 vector 中。我还需要避免空格和换行符。但是当我读取输入时,它没有看到字符串“30”,而是看到了字符“3”和“4”。

void Input() {
getline(cin,line, '\n');
for (int i = 0; i < line.length(); i++) {
if (! (isspace(line[i]))) {
cout << line[i] << ", ";
scores.push_back(line[i]);//(atoi(input));
}
}
cout << scores.size() << "! ";
}

像“30 40 50”这样的行不会给出大小为 3 的 vector ,它会给出大小为 6 的 vector 。解决此问题的最佳方法是什么?

编辑:我应该在原始消息中澄清这是一个挑战,我无法在原始案例中包含字符串流库。

最佳答案

我认为您在 解析之前抓取整行是正确的,否则您会陷入困境。但你实际上必须做一些解析。现在您只是拉出单个字符。

以下内容不是最佳的,但它可以帮助您开始 — 继续使用格式化流提取,但与文件中的这一行隔离。

所以:

void Input()
{
getline(cin, line, '\n');
istringstream ss(line);

int val;
while (ss >> val)
scores.push_back(val);

cout << scores.size() << "! ";
}

关于C++ 读入一行字符串作为整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34657505/

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