我有一个文本文件,如下所示:
T T T T T T T T T F
T T T T T T T T T F
T T T T T F T T T T
T T F T T F T T T F
T T T T T T T T T T
我想阅读并将其存储在2维数组中。
在阅读的同时,我想将其存储在一个布尔数组中,使其具有以下格式:
1 1 1 1 1 1 1 1 1 0
1 1 1 1 1 1 1 1 1 0
1 1 1 1 1 0 1 1 1 1
1 1 0 1 1 0 1 1 1 0
1 1 1 1 1 1 1 1 1 1
我写了以下代码:
#define ROWS 5
#define COLUMNS 10
int myArray[ROWS][COLUMNS];
void txtFileInput()
{
int i,j;
ifstream txtFile;
txtFile.open (myfile.txt);
for (i=0;i<ROWS;i++){
for (j=0;j<COLUMNS;j++){
txtFile >> myArray[i][j];
}
}
txtFile.close();
}
该代码无法正常工作,因为它返回了一个2个具有零值的dim数组[5] [10]。
请问我如何解决它?
谢谢!
答案 0 :(得分:0)
文件名应为字符串:
txtFile.open("myfile.txt");
然后,根据您的问题,需要将T
和F
更改为int 1
和0
。代码:
for (i=0;i<ROWS;i++){
for (j=0;j<COLUMNS;j++){
char read;
txtFile >> read;
if(read == 'T')
myArray[i][j] = 1;
else if(read == 'F')
myArray[i][j] = 0;
}
}
另外,请考虑使用类型为bool
的矩阵而不是int
。
答案 1 :(得分:0)
文本T
不是布尔值或整数值。因此,当您尝试读取整数值
您必须将其读取为字符,然后检查它是'T'
还是'F'
并将正确的布尔值放入数组中。
而且,为什么没有bool
数组?