-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