用C++语言,用fscanf将txt中的矩阵数据(含浮点数)存到矩阵A中
时间: 2024-11-03 08:19:18 浏览: 50
在C++中,你可以使用`fscanf`函数从文本文件(txt文件)读取矩阵数据并将它们存储到二维数组(矩阵)中。假设矩阵的大小是固定的,例如是一个MxN的矩阵,下面是一个简单的示例:
```cpp
#include <cstdio>
#include <vector>
const int ROWS = 4; // 矩阵行数
const int COLS = 5; // 矩阵列数
int main() {
std::vector<std::vector<double>> matrix(ROWS, std::vector<double>(COLS)); // 创建一个二维动态数组来表示矩阵
FILE* file = fopen("matrix.txt", "r"); // 打开文件
if (file == NULL) {
perror("Error opening file");
return 1;
}
for (int i = 0; i < ROWS; ++i) { // 遍历每一行
for (int j = 0; j < COLS; ++j) { // 遍历每一列
double value;
if (fscanf(file, "%lf", &value) != 1) { // 尝试读取一个浮点数
perror("Error reading from file");
fclose(file);
return 1;
}
matrix[i][j] = value; // 存储读取的值
}
// 如果需要换行,可以使用fscanf("%*[^\n]\n"); 或者跳过剩余的行
}
fclose(file); // 关闭文件
// 此时matrix变量就包含了从txt文件读取的矩阵数据
// 你可以在这里处理矩阵A
return 0;
}
```
在这个例子中,`fscanf`尝试读取每个元素并将其转换为浮点数。如果读取过程中发生错误,程序会捕获异常并退出。记得处理可能出现的文件打开和关闭错误。
阅读全文