Я пытаюсь прочитать содержимое файла (который содержит как «стандартный» текст, так и «двоичные» данные).
Затем мне нужно взять этот символ (стандартный или расширенный ASCII) и получить соответствующее десятичное (int) значение ASCII.
У меня очень много времени, чтобы заставить его работать правильно.
Вот фрагмент кода, чтобы показать, что я сейчас делаю ...
FILE *fp = fopen(file, "r+");
char *value = NULL;
size_t charSize = sizeof(char) + 1;
value = malloc(charSize);
strcpy(value, "0");
fseek(fp, offset, SEEK_SET);
fgets(value, charSize, fp);
int c = (int)value;
free(value);
Я прочитал сообщение о том, что вам нужно использовать unsigned char для расширенного ascii, однако переход на unsigned char не решил проблему (и дал предупреждения компиляции)
Я также пытался использовать wchar_t с кодом:
....
wchar_t *value = NULL;
value = malloc(2);
wcscpy(value, (wchar_t *)"");
fseek(fp, offset, SEEK_SET);
fgetws(value, 2, fp);
int c = (int)value;
Ничто из этого не похоже на работу. Я либо получаю 0 для практически всего, либо какое-то «случайное» значение.
Например, используя любой из трех, которые я получаю:
значение:% (правильно)
c: 76678304 (число меняется каждый раз, но в одном и том же «диапазоне») (что-то говорит мне, что это не правильно):)
Так что, очевидно, я делаю что-то не так, но я просто не могу понять это ...
Любая помощь будет принята с благодарностью.