我想通过3行值读取我的数组行3个值。所以当我恢复3个值放入我的矩阵等等...
for(int i=0; i<_height; i++) {
for(int j=0; j<_width; j++) {
result = ifile.get();
(image)[i][j]= (int)result;
// Display the array which contains data
cout << (image)[i][j] << " ";
}
cout << endl;
}
答案 0 :(得分:1)
试试这个:
for (unsigned int row = 0; row < 3; ++row)
{
for (unsigned int column = 0; column < 3; ++column)
{
inFile >> image[row][column];
}
}
由于您的值由&#34;空格&#34;(空格,制表符或换行符)分隔,无论所有值是在一行还是多行,这都应该有效。
编辑1:更安全的替代
以上假设总是有9个值,它们都是有效的整数。
如果出现问题,上述情况就不会奏效。以下是一种更强大的方法。
unsigned int row = 0;
unsigned int column = 0;
bool all_values_read = false;
int value = 0;
while ((inFile >> value) && !all_values_read)
{
image[row][column] = value;
++column;
if (column >= 3)
{
column = 0;
++row;
if (row >= 3)
{
all_values_read = true;
}
}
}
答案 1 :(得分:0)
您可以实现以下内容:
int count = 0;
for(int i=0; i<_height; i++) {
for(int j=0; j<_width; j = j +3) {
result = ifile.get(i,j);
(image)[i][count]= (int)result;
count += 1;
// Display the array which contains data
cout << (image)[i][count] << " ";
}
count = 0;
cout << endl;
}
get(int i, int j)
函数是一个函数,它从j+3
行的j
行开始恢复三个值(如果行在i-th
之前结束,则更少)