我对编程很陌生,所以请原谅我的无知。我一直试图将ppm文件存储到数组中然后打印我存储的内容。我期待看到从0到255的数字。我甚至不知道这是否可能, 但是当我打印我的数组时,我得到的是这样的随机数:
我是0;价值是32 我是1;值是-101 我是2;价值是82 我是3岁;价值是78 我是4岁;值是-77等。我想要做的就是确保我已经将正确的东西存储到我的阵列中,以便正确地改变它。因此,如果有其他方法可以做到这一点,而且我的方式不对,那么知道这将是非常有帮助的。
这是我的代码:
float * ReadPPM(const char * filename, int * w, int * h) {
ifstream myfile;
myfile.open(filename, ios::binary);
if (myfile.is_open())
{
int i = 0;
cout << "File successfully open" << endl;
myfile.ignore(2, ' ');
int width;
int height;
myfile >> width;
myfile >> height;
myfile.ignore(4, ' ');
w = & width;
h = & height;
cout << width << endl;
cout << height << endl;
int size = width*height * 3;
char * buffer = new char[size];
myfile.read(buffer, size);
while (i < 500) {
cout << "i is " << i << "; value is " << (float)(buffer[i]) << endl;
i++;
}
delete[] buffer;
system("PAUSE");
我实际上必须将它们存储到一个float数组中,但我现在使用char,因为我相信它对我来说更容易理解。