Такой вопрос. Я должен прочитать из файла проверочную сумму, 8 байт
Код
if (IsFileExists(checksum_file))
{
FILE *file;
char *checksum_buff = "";
file = fopen(checksum_file, "r");
fread(checksum_buff, 8, 1, file);
fclose(file);
}
один из аргументов fread функции - сколько байт прочитать. но байты могут быть записаны и со второй строчки. как задать считываемый размер?
а если так?
Код
if (IsFileExists(checksum_file))
{
FILE *file = fopen(checksum_file, "r");
char buff[1024];
char c;
int char_count = 0;
int i = 0;
fseek(file, 0, SEEK_SET);
while ((c = fgetc(file)) != EOF)
{
if (isalnum(c))
{
buff[i++] = (char) c;
char_count++;
}
if (char_count == 8)
break;
}
buff[i] = '\0';
fclose(file);
}
странно - у меня на строке while ((c = fgetc(file)) != EOF) ругается
Warning[Pe514]: pointless comparison of unsigned integer with a negative constant
char у меня в IAR знаковый.
понял - int c;
Сообщение отредактировал Jenya7 - Nov 14 2017, 08:01