У меня проблемы с чтением определенного целого числа из файла, и я не уверен, почему.Сначала я читаю весь файл, чтобы узнать, насколько он велик, а затем сбрасываю указатель на начало.Затем я прочитал 3 16-байтовых блока данных.Затем 1 20-байтовый блок, а затем я хотел бы прочитать 1 байт в конце как целое число.Тем не менее, я должен был написать в файл как символ, но я не думаю, что это должно быть проблемой.Моя проблема заключается в том, что когда я читаю его из файла, а не целочисленное значение 15, это 49. Я проверил в таблице ACII, и это не шестнадцатеричное или восьмеричное значение 1 или 5. Я полностью запутался, потому что мойчитать заявление read(inF, pad, 1)
, что я считаю правильным.Я знаю, что целочисленная переменная составляет 4 байта, однако в файле остался только один байт данных, поэтому я читаю только последний байт.
Мой код воспроизводит функцию (кажется, что много, но это нене думаю, что это так)
код:
#include<math.h>
#include<stdio.h>
#include<string.h>
#include <fcntl.h>
int main(int argc, char** argv)
{
char x;
int y;
int bytes = 0;
int num = 0;
int count = 0;
num = open ("a_file", O_RDONLY);
bytes = read(num, y, 1);
printf("y %d\n", y);
return 0;
}
Подводя итог моему вопросу, как получается, когда я читаю байт, в котором хранится 15 из текстового файла, я не могу просмотретьэто как 15 из целочисленного представления?Любая помощь будет принята с благодарностью.Спасибо!