像素時是含有3個字符的結構。 struct Pixel { char r, g, b} ;
「呼叫沒有匹配函數」試圖cin.read成一個二維數組
int H = 5, C = 10;
Pixel *PMatrix[H]; // Creates an array of pointers to pixels
for (int h = 0 ; r < H ; h++) {
PMatrix[r] = new Pixel[C]; //Each row points to an array of pixels
}
我有一個PPM文件,我想讀取字節到我的像素矩陣圖像表示,逐行。
for (unsigned int i = 0; i < height; i++){
cin.read(PMatrix[i][0], width*3);
}
我也試過"cin.read(PMatrix[i], width*3);"
在循環中。
我得到的錯誤no matching function for call to 'std::basic_istream<char>::read(PpmImage::Pixel&, unsigned int)'
這是什麼意思???
無關使用數組,什麼都做,試圖傳遞一個用戶定義類型('Pixel')。 'read'可能不適合你。 http://www.cplusplus.com/reference/istream/istream/read/ – kfsone
它應該是'&PMatrix [I] [0]'或'只是PMatrix [I]'某些'的reinterpret_cast在'拋出。但我猜測它仍然會在運行時失敗(因爲對齊?) –
LogicStuff