gpt4 book ai didi

c++ - 是否可以在同一行上一个接一个地使用 cin 和 getline?

转载 作者:行者123 更新时间:2023-11-30 01:50:58 25 4
gpt4 key购买 nike

我的输入是这样一行:

12345 14 14 15 15

其中 12345 是学生的 ID 号,其大小可以变化,其余输入是学生的分数。从这一行开始,我试图将 id 存储到一个变量中,然后将分数存储到另一个变量中,然后将其转换为一个 int 数组。我试着做这样的事情:

int id;
std::string scores;
std::cin >> id;
std::cin.ignore(' '); //ignore the space after the id number
std::getline(std::cin, scores); //store the rest of the line into scores

虽然这似乎不起作用。这样的事情可能吗?

我想我可以改为使用子字符串来分隔这两个部分,但由于 ID 号的长度可能会有所不同,我认为我无法做到。

解决我正在尝试做的事情的最佳方法是什么?对不起,如果这有点微不足道;我仍然是 C++ 的初学者。

最佳答案

我不确定什么不起作用,但我肯定不会使用 ignore() 来忽略分隔空间。相反,我只是使用

std::getline(std::cin >> id >> std::ws, scores);

操纵器 std::ws 将忽略所有空格。

关于c++ - 是否可以在同一行上一个接一个地使用 cin 和 getline?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26766294/

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