Итак, у меня есть код, который будет считываться в заголовке из изображения ppm, выделять память для размера изображения и успешно печатать пробелы (случайное число, повторяемое в терминале) для каждого пикселя. Все, что мне нужно знать, это то, как я должен читать красные зеленые и синие значения (3 отдельных значения от 0 до 255) для каждого пикселя. Я не знаю, как получить доступ к этим данным в каждом пикселе. Вот мой код до сих пор:Получение значений 0-255 из пикселя в файле ppm C
#include <stdio.h>
#include <stdlib.h>
int subscript(int row,int column,int numberColumns);
int sub(int rd, int gr, int bl);
//table of contents for the subscript
int main(void){
char header[5];
scanf("%s",header);
printf("%s",header);
printf("\n");
int width, height, depth;
scanf("%d %d %d\n", &width, &height, &depth);
printf("%d %d %d\n", width, height, depth);
int red = 0;
int green = 0;
int blue = 0;
int sm;
int r = 0;
int c = 0;
//allocate memory for bit to be used throughout main
unsigned char *bit = malloc(width*height);
int *rgb = malloc(3*depth);
//loops to read in table and print it
while(r < height){
while(c < width)
{
int col;
scanf("%d",&col);
//brings in allocated memory and values
bit[subscript(r,c,width)] = col;
int clr;
rgb[sub(red,green,blue)] = clr;
int color = clr + col;
printf(" %d",clr);
c=c+1;
}
printf("\n");
r = r + 1;
c = 0;
}
free(bit);
}
int subscript(int row,int column, int numberColumns)
{
return row * numberColumns + column;
//retuns items for subscript
}
int sub(int rd, int gr, int bl)
{
return rd+gr+bl;
}
это для проекта, и одним из требований является синтаксический анализ ввода/вывода файла из командной строки, поэтому я не думаю, что мне разрешено использовать fopen в этой ситуации. Я видел в нескольких других сообщениях, что чтение всего файла в память происходит намного быстрее, но я должен прочитать его по частям, поэтому я не выхожу за пределы материала, который мы рассмотрели в классе (неудачная избыточность здесь). Как я могу включить этот scanf, который вы упомянули во вложенном цикле строк/столбцов? Я также исправлю упомянутые вами проблемы с malloc. –
«из командной строки» может означать, что имя файла должно быть передано в качестве аргумента вашей программе или что оно должно быть передано через stdin. Сделайте все, что вам нужно для выполнения задания. Я добавлю пример re. петля и т. д. –
@ihavethedumb Добавлен пример. –