Я пытаюсь создать небольшую программу, которая считывает файл только с одним числом, а затем программа выводит десятичное, шестнадцатеричное или восьмеричное число, а затем отображает само число. Вот правила, которые я установил для разрешенных номеров:
Целое число может быть однозначно указано в десятичной, двоичной, восьмеричной или шестнадцатеричной форме. Все эти формы могут начинаться с необязательного знака, которым может быть «+» или «-» без разделительных символов между ним и остальной частью целого числа.
Десятичное целое может быть одним нулем или последовательностью одной или нескольких десятичных цифр, начинающейся с отличной от нуля десятичной цифры. Десятичные цифры: 0, 1, 2, 3, 4, 5, 6, 7, 8 и 9.
Восьмеричное число начинается с нуля, за которым следует один ноль или непустая последовательность восьмеричных цифр, начинающаяся с ненулевой восьмеричной цифры. Восьмеричная цифра — это одна из 0, 1, 2, 3, 4, 5, 6 или 7.
Шестнадцатеричное число начинается с нуля, за ним следует прописная или строчная буква «x», а также либо один ноль, либо отличная от нуля шестнадцатеричная цифра и последовательность из нуля или более шестнадцатеричных цифр. Шестнадцатеричное число цифры включают десятичные цифры и буквы a, b, c, d, e и f и их версии в верхнем регистре.
Обратите внимание, каким длинным и запутанным должно быть это описание, чтобы оно было недвусмысленным. «Ведущие нули» не допускаются ни в одном из представлений, например, 0x007 — это неправильное шестнадцатеричное число, а 007 — одновременно неправильное восьмеричное и десятичное число.
Я думаю, у меня просто проблемы с тем, как заставить программу выяснить, что это за число.