做算法题时经常遇到,C++键盘读入问题,总结如下。
// 1 输入二维数组
int _tmain(int argc, _TCHAR* argv[]){
int n, num;
vector <int> a;
vector < vector <int> > arr;
cin >> n;
for (int i = 0; i < n; ++i){ //学 输入二维数组
for (int j = 0; j < 4; ++j){
cin >> num;
a.push_back(num);
}
arr.push_back(a);
a.clear();
}
return 0;
}
//输入是数组,输入换行符时,该行结束
vector<int> vec;
int i;
char c;
while ((c = cin.get()) != '\n')
{
cin.unget(); //回退到最近读取过的字符位置
cin >> i;//cin>>在读入的过程中会自动忽略空格 //字符,而cin.get()会将空格字符也读入
vec.push_back(i);
}
从键盘录入一个字符串,以“换行符”结束。该字符串由“;”隔成n段,每一段中有m个整数,整数之间用“空格”分隔,试将该数组存入vector<vector< int>>矩阵中,样例输入和数组示例如下
vector<vector< int>>