用数字分隔数字

时间:2017-11-01 04:28:59

标签: c++

所以我想得到一个数字列表。所以1,2,3-5会说 1,2,3,4,5 这是我到目前为止所编码的

cin>>num; 
vec.push_back(num);
if(cin.peek() == ',')
    cin.ignore();

如何进行范围部分?

1 个答案:

答案 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');