C++输入多行数据
动机
编程题常用需求,比如输入两行数据。
解决思路:使用getline
程序
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
vector<int> vec;
vector<vector<int>> 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 <iostream>
#include <vector>
using namespace std;
int main()
{
int data;
vector<int> vec;
while(cin >> data)
{
vec.push_back(data);
}
for(auto i:vec)
cout << i << endl;
return 0;
}
本文为保持文章完整性可能使用了其他作者的文字,如果影响到您的权益,请与我联系,谢谢理解!
转载本文请注明出处,非作者授权不得用于商业用途。