我不知道如何为从文件中读入的矩阵获取常量值
I don't know how to get a const value for my matrix that is read in from a file
我很困惑,如果你对我的问题感到困惑,我也不会感到惊讶。我想做的是创建一个程序,从文件中读取向量/矩阵维度/内容,创建数组,然后执行操作。
ifstream in("input.txt");
stringstream buffer;
buffer << in.rdbuf();
string test = buffer.str();
string line;
ifstream file("input.txt");
string contents;
int* conv;
while (getline(file, line)){
*conv = atoi(line.c_str());
//cout << conv << endl;
size_t pos = line.find("#");
contents = line.substr(pos + 1);
//cout << contents << endl;
}
int row = conv[4];
int column = conv[5];
int aMatrix[row];
file.close();
cin.get();
很明显,我得到了一个错误,即我必须有一个常数值。但是,由于我是从文件中读取的,所以在读取文件之前,我不确定如何获得常数。
该文件包含诸如34#123456789123之类的行,这些行转换为内容为1234…3的3 x 4矩阵。上面的大部分代码都是我如何读入文件,将字符串分为大小和内容,并将它们转换为int。
函数的参数为(例如,矩阵*矩阵):
int** mxm(int **A, int **B, int rowsA, int colsA, int rowsB, int colsB){
int** value = NULL;
for (int i = 0; i < rowsA; i++){
for (int j = 0; i < colsA; i++){
for (int k = 0; k < colsB; k++){
**value += A[i][j] * B[i][k];
}
}
}return value;
}
编辑:我应该提到,虽然我可以清楚地看到那个矩阵是3x4,但下一个矩阵是4x3。当我运行程序时,我不应该有任何输入,程序应该能够通过读取文件来完成。
如果您需要创建一个数组,并且在运行时之前您不会知道数组的大小,那么您需要使用指针。你可以这样做:
int rows;
std::cout << "Rows: ";
std::cin >> rows;
int * values = new int[rows];
// when done call delete [];
delete [] values;
如果你需要做2个维度,那么你可以使用:
int rows, cols;
std::cout << "Rows: ";
std::cin >> rows;
std::cout << "Cols: ";
std::cin >> cols;
int ** values = new int[rows];
for (int i = 0; i < rows; i++)
values[i] = new int[cols];
// when done call delete [] for both dimensions;
for (int i = 0; i < rows; i++)
delete [] values[i];
delete [] values;
相关文章:
- constexpr 函数获取常量字符*
- 如何在 c++ stl 中获取列表中被推回的元素的地址,在常量时间内?
- C++ 获取函数在常量引用中按值返回的结果
- 如何在常量计算表达式中获取编译时错误?
- C++ 获取向量中常量字符* [ ] 的长度
- 使用boost库(cpp_int)时获取常量时出错
- 获取模板以匹配常量 T* 和非常量 T* 的不同序列
- 你能安全地从字符串的 c_str() 常量字符*中获取指向字符串的指针吗?
- 获取对常量规范重载的成员函数的引用
- 如何从模板获取常量矢量元素的引用
- 使用 declval 获取非常量迭代器
- 我们可以获取子字符串的常量引用吗?
- 在 c++ 中获取常量字符 * 长度的最佳方法
- 在常量引用获取器上读取写入互斥锁(使用 Qt)
- 如何从对象中获取公共常量?
- 如何获取指向字符数组中第一个字符的常量指针
- 从指针检索字符串时获取常量空行输出
- 如何从 QString 获取常量字符 *
- 如何在退出 switch() 后获取常量表达式
- 从 GLSL 着色器获取常量