Я пытаюсь прочитать файл из этого кода. Я пытаюсь загрузить изображения и сохранить их в своей программе в виде строк, чтобы позже я мог создать идентичное изображение с помощью fprintf для нового файла. Мне не разрешено использовать некоторые дубликаты файлов; Мне нужно загрузить файлы в виде строки и записать их в новый файл позже. Я пытаюсь получить массив символов, и, поскольку один символ представляет собой один байт, массив равен размеру файла, и каждый элемент массива символов соответствует одному байту текстуры алмазного блока, и я хочу также быть в состоянии записать эту строку из кода в новый файл и иметь еще один алмазный блок, который я могу открыть с помощью средства просмотра изображений.
#include <stdio.h>
#include <stdlib.h>
char Contents[468];
int main(int argc, char *argv[]) {
char *WD = getenv("HOME");
char Path[strlen(WD)+strlen("/Desktop/diamond_block.png")+1];
sprintf(Path, "%s/Desktop/diamond_block.png", WD);
FILE *File = fopen(Path, "r");
fscanf(File, "%s", Contents);
printf(Contents);
}
Результат - всего четыре буквы, âPNG
, и предполагается, что это сотни символов, означающих, что файл НЕ полностью читается. Я подозреваю, что он каким-то образом завершается рано каким-то завершающим персонажем, но как я могу решить мою проблему?