所以我想得到一个数字列表。所以1,2,3-5会说 1,2,3,4,5 这是我到目前为止所编码的
cin>>num;
vec.push_back(num);
if(cin.peek() == ',')
cin.ignore();
如何进行范围部分?
答案 0 :(得分:1)
Click Here了解有关cin.peek()
的更多信息Click Here有一个很棒的Stack Overflow问题
Click Here我用这个来源帮助你。
我假设你正在使用命名空间std 如果您需要更多澄清评论,我会在代码中添加更多评论。
cin>>ws; //eats up white spaces
cout.flush();
do //loop to check every number
{
cin>>num1;
num_vec.push_back(num1);
if(cin.peek() == ',')
{
cin.ignore();
}
else if(cin.peek() == '-')
{
cin.ignore();
//if it sees a dash it will ignore the dash
// similar to what you did with your comma
cin>>num2;
for(++num1; num1<=num2; num1++)
{
num_vec.push_back(num1);
//keeps adding 1 to that range and pushing it back to vector
}
if(cin.peek() == ',')
{
cin.ignore();
}
}
}while(cin.peek() != '\n');