#include <stdio.h>
#include <stdlib.h>

void load_image_data(char* f_name)
{
	FILE*	fp;
	char	buf[640];
	errno_t	err;
	int	x_size, y_size;
	int	max_gray;
	int	ix, iy;

	err = fopen_s(&fp, f_name, "rb");
	if (err) {
		fprintf(stderr, "fopen_s\n");
		return;
	}

	// P5
	fgets(buf, sizeof buf, fp);
	if (buf[0] != 'P' || buf[1] != '5') {
		fprintf(stderr, "not P5\n");
		return;
	}

	// x y
	x_size = y_size = 0;
	while (x_size == 0) {
		fgets(buf, sizeof buf, fp);
		if (buf[0] == '#') continue;
		sscanf_s(buf, "%d%d", &x_size, &y_size);
	}

	// max
	max_gray = 0;
	while (max_gray == 0) {
		fgets(buf, sizeof buf, fp);
		if (buf[0] == '#') continue;
		sscanf_s(buf, "%d", &max_gray);
	}

	printf("\n%s\n", f_name);
	printf("%d %d\n", x_size, y_size);
	printf("%d\n", max_gray);

	for (iy = 0; iy < y_size; iy++) {
		for (ix = 0; ix < x_size; ix++) {
			printf("%02x", fgetc(fp));
		}
		printf("\n");
	}

	fclose(fp);
}

int main()
{
	char	f_name[256];
	int	i;

	for (i = 0; i < 10; i++) {
		sprintf_s(f_name, _countof(f_name), "std%d.pgm", i);
		load_image_data(f_name);
	}
	for (i = 0; i < 10; i++) {
		sprintf_s(f_name, _countof(f_name), "n%d.pgm", i);
		load_image_data(f_name);
	}
	load_image_data("number2.pgm");
	return 0;
}
