我正在写入一个 .ppm 文件,到目前为止,我只是通过向它写入 0 和 1 来测试它。当我在记事本中打开文件时,数字显示为符号。但是当我在写字板或 Microsoft Word 中打开它时,会出现数字。代码肯定没有问题,是记事本的错吗?我试图通过谷歌查找,但我找不到任何东西。本质上,我正在做的是扩展一个文件,其中包含 (1 1 1 1) 到 (1 0 0 1 0 0 1 0 0 1 0 0) 之类的值,它们是红色像素,然后在其中添加绿色和蓝色值同样的方式。
我得到‱‰‰‱‰‰‱‰‰‱‰‰,而不是100100100100。
代码是:
#include <stdio.h>
int redArray[128][256 * 3];
int main(void) {
int x;
int y;
FILE *redFile = NULL;
imagePixels = fopen("image.ppm", "w");
redFile = fopen("image.red", "r");
readRed(redFile);
for (y = 0; y < 128; y++) {
for (x = 0; x < 256 * 3; x += 3) {
redArray[y][x] = 1;
}
}
for (y = 0; y < 1; y++) {
for (x = 0; x < 256 * 3; x++) {
fprintf(imagePixels, "%d ", redArray[y][x]);
}
}
fclose(redFile);
fclose(imagePixels);
return 0;
}
// This function is in a different .c file. I completely forgot to add it here but I'll leave at the '#include' business.
void readRed(FILE *colourFile) {
for (y = 0; y < 128; y++) {
for (x = 0; x < 256; x++) {
fscanf(redFile, "%d", &redArray[y][x]);
}
}
}