我在C ++中接受整数输入后如何接受字符串输入

时间:2018-07-30 15:28:36

标签: c++

我想解决一个问题,该问题是我要提取一个字符串并按增加字长的顺序打印它。当我输入测试用例的数量时,它错误地读取了第一个字符串(我猜是由于换行符)。这是代码:

#include<bits/stdc++.h>

using namespace std;

int main()
{
    int t;
    std::cin>>t;

    while(t--){
        std::string s;
        //int extraSpace;
        //cin >> extraSpace;
        getline(cin,s);
        //cout<<s<<endl;

        size_t l=s.length();
        std::vector<std::pair<int, std::string> >v;
        int k=0;

        for(int i=0;i<l;i++){
            if(s.at(i)==' '||i==l-1){
                std::pair<int, std::string> temp;
                temp.first=i-k;

                std::string h = s.substr(k, i-k);
                if(i==l-1)
                h=h+s.at(i);
                temp.second=h;
                v.push_back(temp);
                k=i+1;
            }    
        }
        std::sort(v.begin(), v.end());
        std::vector< std::pair<int, std::string> >::iterator it=v.begin();
        for(;it!=v.end();++it){
            std::pair<int, std::string> temp=*it;
            std::cout<<temp.second<<" ";
        } 
        std::cout<<std::endl;
    }
    return 0;
}

0 个答案:

没有答案