我想编写一个程序,可以将.txt文件中的整数值读入矩阵。参数应该由argv []传递。
运行格式:./ a.exe dimension1 dimension2 filename等。
当我编译程序时没有错误但是当我使用以下参数运行程序时,我总是得到cerr消息:“错误:矩阵A无法初始化”:
./ a.exe 20 50 A.txt 50 30 B.txt
for循环是否有错误或为什么我无法将.txt文件中的值读入我的矩阵?
我会感激任何帮助。
由于
马吉德阿卜
ifstream ifs_A;
ifstream ifs_B;
ifs_A.open(argv[3]);
ifs_B.open(argv[6]);
if (ifs_A.good() && ifs_B.good())
{
int a;
ifs_A >> a >> a;
ifs_B >> a >> a;
int A_d1 = atoi(argv[1]);
int A_d2 = atoi(argv[2]);
int B_d1 = atoi(argv[4]);
int B_d2 = atoi(argv[5]);
const int z = 20;
const int y = 50;
const int x = 30;
static double A[z][y], B[y][x];
for (int i=0; i < A_d1; i++) {
for (int j=0; j < A_d2; j++) {
if (ifs_A.good())
{
ifs_A >> A[i][j];
}
else
{
cout << "Error: The Matrix A could not be initialized" << endl;
return 1;
}
}
}
ifs_A.close();
for (int i=0; i < B_d1; i++) {
for (int j=0; j < B_d2; j++) {
if (ifs_B.good())
{
ifs_B >> B[i][j] ;
}
else
{
cout << "Error: The Matrix B could not be initialized" << endl;
return 1;
}
}
}
ifs_B.close();
}
else
{
cerr << "The file " << argv[3] << " and " << argv[6] << " was not found" << endl;
}
return 0;
}