c++编写一个read函数,作用:将文件中的矩阵读入内存的数组中 函数的返回值:读取成功返回0,失败返回-1
时间: 2024-02-28 17:52:48 浏览: 86
下面是一个简单的 C++ 函数,用于从文件中读取矩阵并将其存储到数组中。如果读取成功,函数将返回0,否则返回-1。
```c++
#include <fstream>
#include <vector>
int read_matrix(const char* filename, std::vector<std::vector<int>>& matrix) {
std::ifstream file(filename);
if (!file.is_open()) {
return -1; // 打开文件失败,返回-1
}
matrix.clear(); // 清空矩阵
std::string line;
while (std::getline(file, line)) {
std::vector<int> row;
std::istringstream iss(line);
int num;
while (iss >> num) {
row.push_back(num);
}
if (!row.empty()) {
matrix.push_back(row);
}
}
file.close();
return 0; // 读取成功,返回0
}
```
这个函数接受一个文件名和一个二维向量作为参数,读取文件中的矩阵,并将其存储到二维向量中。每一行表示矩阵中的一行,每一列之间用空格分隔。如果读取成功,函数返回0,否则返回-1。
使用示例:
```c++
#include <iostream>
int main() {
std::vector<std::vector<int>> matrix;
if (read_matrix("matrix.txt", matrix) == 0) {
// 读取成功,输出矩阵
for (const auto& row : matrix) {
for (const auto& num : row) {
std::cout << num << " ";
}
std::cout << std::endl;
}
} else {
// 读取失败,输出错误信息
std::cout << "Failed to read matrix from file" << std::endl;
}
return 0;
}
```
阅读全文