Я читаю входной файл и записываю его в двумерный целочисленный массив. Все числа в файле имеют два символа.
Работает хорошо, но во всех элементах [48] - [57] целые числа имеют избыточную цифру (например, 30, 871, 447 вместо 3, 87, 44). Та же проблема с strtol (). Шестнадцатеричные коды входного файла выглядят абсолютно нормально в этих частях.
for (int a = 0; a < d; a++)
{
for (int b = 0; b < d; b++)
{
//read two chars
uint16_t num;
fread(&num, sizeof(char) * 2, 1, inptr);
//convert to int and put to the array (it makes wrong int in 48 <= b <= 57)
arr[a][b] = atoi((char*)&num);
//skip space or line break in the input file
fseek(inptr, sizeof(char), SEEK_CUR);
}
}
В чем проблема? Почему только [48] - [57] работают неправильно?