Так что я новичок, борющийся (действительно тонущий) с C, пытающийся пробиться через CS50.Я работаю над упражнением «Восстановление», пытаясь восстановить jpegs из файла card.raw.Благодаря Google, я узнал, что, набрав xxd -l 2400 card.raw (char это 'L') в терминале, я могу отображать байты 0-2384 включительно в терминале, которые имеют следующий формат:
0000000: 0000 0000 0000 0000 0000 0000 0000 ................
0000950: 0fe0 c11b e555 8f20 33cc fbfe 559e 8eee ..... U.3 ... U ...
Q1: я хочу отобразить первые 32 байта (все 0), используя printf (чтобы я мог проверить, что читается).Моя программа компилируется, но ничего не отображается.(Конечно, как только у меня это заработает, я изменю его на отображение большего количества байтов, так как я знаю, откуда начинается первый jpeg, просматривая данные в терминале).
Простые ответы приветствуются (если бы я был более опытным, я бы не стал публиковать такие основные вопросы).Спасибо,
#include <stdio.h>
#include <stdlib.h>
int main()
{
// hardcode opening of card.raw in read binary mode
FILE *infile = fopen("card.raw", "rb");
if (infile == NULL)
{
fprintf(stderr, "Could not open infile");
return 2;
}
// declare a variable to hold data to be read from infile file, note that a size for it must be specified
char text[32];
/* go to the beginning of the card.raw file to start reading */
fseek(infile, 0, SEEK_SET);
// text is the variable that will hold what is read, declared above
// how many to read, how many to read at a time, where to read from
fread(text, 32, 1, infile);
printf("%s\n", text);
}