-2
我需要读取一个txt文件并将其存储到一个矩阵(我们假设它是一个2x2矩阵)。我有下面的代码有问题(我semplified它更夹板):C++读取txt文件并将其存储在矩阵中char char由字符
#include<stdexcept>
#include<string>
#include<fstream>
using namespace std;
class A{
private:
int **m;
void allocate_mem(int ***ptr){
*ptr = new int *[2];
(*ptr)[0] = new int[2*2];
for(unsigned i = 1; i < 2; i++)
(*ptr)[i] = (*ptr)[0] + i*2;
}
void read_file(string file_input){
ifstream fin(file_input.c_str());
allocate_mem(&m);
char a;
for(unsigned i = 0; i < 2; i++) {
for (unsigned j = 0; j < 2; j++) {
a = fin.get();
if(a=="X"){
//ISO C++ forbids comparison between pointer and integer [-fpermissive]
m[i][j] = 1;
}else{
m[i][j] = 0;
}
}
}
fin.close();
}
public:
A(){
throw logic_error("Error!");
}
A(string file_name){
read_file(file_name);
}
~A(){
delete[] m[0];
delete[] m;
}
};
input.txt中
XX
X
我要存储一个2×2矩阵,其elemets是:
11
01
发生了什么事?它是否编译?如果是这样,你得到的是什么产出而不是你期望的? – bstamour
if(a ==“X”)''应该是'if(a =='X')'带单引号 –
它不能编译。该错误在代码中//之后指示。 – MBall