输入数据的行数和个数已知
这种情况下的数据输入就比较简单了
int n;
cin >> n;
vector<int> data(n, 0);
for(int i = 0; i < n; i ++ )
{
cin >> data[i];
}
输入数据的行数和个数未知
每行的数据之间空格隔开,每行的数据个数不定,一直读到文件结束符为止
#include <iostream>
#include <sstream>
#include <vector>
#include <string>
using namespace std;
int main{
stringstream ss;
string s;
vector<int> data;
while(cin >> s)
{
ss << s;
int num;
while(ss >> num)
{
data.push_back(num);
}
}
return 0;
}
当输入的数据行数已知,每行输入的数据个数未知的情况下:
#include<iostream>
#include<vector>
#include<cstring>
#include <sstream>
using namespace std;
int main(void)
{
vector<int> A; //输入第一行的数据到数组A
vector<int> B; //输入第二行的数据到数组B
int num;
string str;
int cnt = 0; //控制输入数据的行数,行数为已知的情况
while (getline(cin, str))
{
//if (str.size() == 0)break; //控制输入数据的行数,行数为未知的情况
istringstream ist(str);
while (ist >> num)
{
if (cnt == 0)
{
A.push_back(num);
}
else
{
B.push_back(num);
}
}
cnt++;
if (cnt == 2)
break;
}
return 0;
}
程序中的 if(str.size() == 0) break; 也可以在数据输入的行数未知的情况下,控制数据输入的行数