const Matrix readMatrix(istream& in = std::cin);
預設參數為 std::cin,可直接從標準輸入讀取矩陣資料。
#include "Matrix.h"
#include <iostream>
#include <fstream>
int main() {
// 1. 從標準輸入讀取(預設)
Matrix a = readMatrix(); // 等同 readMatrix(std::cin)
std::cout << "Matrix a:\n";
printMatrix(a);
// 2. 從檔案讀取
std::ifstream fin("matrix.txt");
if (fin) {
Matrix b = readMatrix(fin);
std::cout << "Matrix b from file:\n";
printMatrix(b);
}
// 3. 從字串串流讀取(單元測試常用)
std::istringstream sin("2 3\n1 2 3\n4 5 6");
Matrix c = readMatrix(sin);
printMatrix(c);
return 0;
}
預設實作通常期望:第一行 rows cols,接著 rows 行每行 cols 個數值。具體格式請參考 Matrix.cpp 實作。
<fstream> 或 <sstream>。fin.is_open()。readMatrix(std::ifstream("a.txt")) 導致流提前關閉,應先建立命名變數。