C++输入多行数据

动机

编程题常用需求,比如输入两行数据。

解决思路:使用getline

程序

#include 
#include 
#include 
#include 

using namespace std;

int main()
{
    vector vec;
    vector> vec_all;
    string lineData;
    int order = 0;

    while(getline(cin,lineData))
    {
        while(!lineData.empty())
        {
           auto loc = find(lineData.begin(), lineData.end(), ' ');
           order = distance(lineData.begin(),loc);

           vec.push_back(stoi(lineData.substr(0, order)));
           lineData.erase(0, 1+order);
        }
        vec_all.push_back(vec);
        vec.erase(vec.begin(), vec.end());
    }

    for(int i = 0; i < vec_all.size(); ++i)
    {
        cout << "Line " << i+1 << " : ";
        for(int j = 0; j < vec_all[i].size(); ++j)
        {
            cout << vec_all[i][j] <<" ";
        }
        cout << endl;
    }

    return 0;
}

cin方式

cin遇到错误或者结束符才会结束读取,不能直接使用。

验证程序

#include 
#include 

using namespace std;

int main()
{
    int data;
    vector vec;

    while(cin >> data)
    {
        vec.push_back(data);
    }

    for(auto i:vec)
        cout << i << endl;

    return 0;
}

转载于:https://www.cnblogs.com/jingshikongming/p/9921646.html

你可能感兴趣的:(C++输入多行数据)