輸入數據的行數和個數已知
這種情況下的數據輸入就比較簡單了
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; 也可以在數據輸入的行數未知的情況下,控制數據輸入的行數