[C/C++] 输入行的长度不确定的整型矩阵
昨天做笔试题,发现不会接收,白白送了一题,记录一下
#include <bits/stdc++.h> using namespace std; int main() { vector<vector<int>> inputs; // 二维矩阵 int num; vector<int> input; // 记录一行数据 /*--- 输入 --- */ cout << "input:" << endl; while (cin >> num) { // 接收到 EOF (Windows中使用 Ctrl + Z输入,Linux中使用 Ctrl + D)之后 输入流对象 cin 会改变,跳出循环 input.push_back(num); if (cin.get() == '\n') { // 判断字符是否是回车 inputs.push_back(input); input = vector<int>(); // 另起一行 } } /*--- 输出 --- */ cout << "output:" << endl; for (int i = 0; i < inputs.size(); ++i) { for (int j = 0; j < inputs[i].size(); ++j) { cout << inputs[i][j] << " "; } cout << endl; } return 0; }
运行结果:
input: 1 2 3 4 5 1 2 3 4 1 2 3 1 2 1 ^Z output: 1 2 3 4 5 1 2 3 4 1 2 3 1 2 1