[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

  

 

posted @ 2023-04-03 10:45  小贼的自由  阅读(65)  评论(0编辑  收藏  举报