ファイルを部分的にしか読み込まないread関数に問題があります。 たとえば、私の配列のサイズが4 * 4の場合、私の関数はピクセルを0からC++でfileioを使用して2D配列を読み取る
ピクセルだけ読み込みます[0(ピクセル[0] [1]、ピクセル[0] [2]、ピクセル[0] [3] 、pixels [0] [4])
しかし、16ピクセルすべてを読みたいと思っています。私のクラスのフィールドは次のとおりです。ここで
unsigned int cols;
unsigned int rows;
uint8_t** pixels;
は私のロード機能である:
int Image::load(const char* filename) {
//int count=0;
ifstream inFile(filename);
if (!inFile) {
cerr<<"unable to open file";
return 1;
}
inFile>>cols;
inFile>>rows;
cout<<cols;
cout<<rows;
pixels=new uint8_t*[cols];
for(int i=0;i<cols;i++){
pixels[i]=new uint8_t[rows];
}
for(int i=0;i<cols;i++){
for(int j=0;j<rows;j++){
inFile>>pixels[i][j];
cout<<(uint8_t)(pixels[i][j]);
}
}
//cout<<count;
inFile.close();
return 0;
}
私はcolsの、行、およびピクセルを持って読んでいたファイル。
4 4
0 0 16
0 1 16
0 2 16
0 3 16
1 0 16
1 1 16
1 2 16
1 3 16
2 0 16
2 1 16
2 2 16
2 3 16
3 0 16
3 1 16
3 2 16
3 3 16
再生可能なコード例とファイル例を示してください。役立つはずです。 – Fabien
'std :: vector>'はなぜですか? –
genpfault
エラーチェックを追加する必要があります。また、デバッガでコードを突き詰めるだけで、何が間違っているのかを素早く伝える必要があります。 – hyde