我将一个布尔矩阵(ROW * ROW)保存为.txt文件(0,1格式)。如何读取文件
如何从文件中读取矩阵?我在下面写了代码,但是我将读取结果与文件进行比较,并且数组结果与文件不匹配。有人能告诉我我写错了吗?或者有没有更简单的方法来读取矩阵文件?
bool **results = new bool*[ROW];
for(int i=0;i<ROW;i++){
results[i] = new bool[ROW];
}
ifstream infile;
infile.open ("FRM.txt");
string line;
int row=0;
if (infile.is_open())
{
while (infile.good())
{
getline(infile,line);
istringstream iss(line);
int col=0;
while(iss)
{
string word;
iss >> word;
int number = atoi(word.c_str());
if(number==1){
results[row][col] = true;
}
else{
results[row][col] = false;
}
col++;
}
row++;
}
}
infile.close();
请的std ::法院字。 – 2013-04-08 06:12:28
我知道问题所在。当我保存矩阵时,每个数字后面都有一个空格。所以当我读一行时,我得到了类似“0 1 1 1”的内容,最后一个空格导致了错误。因为“字符串”实际上会处理“”,并将其视为整数0. – 2013-04-08 06:26:36