【发布时间】:2018-03-25 17:34:01
【问题描述】:
我必须编写一个程序来读取文本二进制图像 1 和 0,然后根据用户的选择对图像执行各种操作。我相信我对大多数程序都很好,我能够读取文件并显示它。 为了继续,我需要将图像保存到 2D 数组中,这就是我所坚持的。
下面是我整个程序的一个小样本,因为它的其余部分目前可以工作,这是我想要弄清楚的一点,但是在继续搜索和视频之后,我无法终生弄清楚这个或在哪里我错了。
#define N 50
int imageArray [N][N];
int row, col;
int value;
char filename[30];
FILE *ptr_file;
printf("Enter the full name of the input file: ");
scanf("%s", filename);
ptr_file = fopen(filename, "r");
for(row = 0; row < N; row++){
for(col = 0; col < N; col++){
fscanf(ptr_file, "%d", &value);
imageArray[row][col] = value;
}
}
for(row = 0; row < N; row++){
for(col = 0; col < N; col++){
printf("%d", imageArray[N][N]);
}
printf("\n");
}
我试图保存到二维数组的图像都是 50x50 并包含在 txt 文件中。
上面的代码当前输出全 0。图片的背景由 0 组成,而图片本身由 1 组成。
下面是我试图保存到数组中的超小版本,将其想象为 50x50!由于某种原因,我无法在此处粘贴完整图像,因为它重新格式化了它。不过它应该给出一个想法。
0000000
0001000
0011100
0111110
0011100
0001000
0000000
提前感谢您阅读这篇文章!
【问题讨论】:
-
fscanf("%1d", ...)或fgetc(...) - '0'有效吗?通常%d格式会尽可能多地使用。