Чтение целых чисел из файла Переполнение стека

Я реализовал LZW-компрессор, который кодирует строки в целые числа с помощью хэш-функции. Я сохранил закодированную строку в текстовом файле. Теперь мне нужно распаковать тот же код. Я запутался, как различать двузначное целое и однозначное целое при чтении из текстового файла.

Например, мой словарь:

0  c
1  bba
3  aa
5  ac
7  bb
8  aab
9  a
10 b

и так далее.

Теперь предположим, что я закодировал строку «aaabbbac» в «9 3 10 7 9 0», которая сохраняется в текстовом файле как 9310790. Как различить 0, 1 и 10 при чтении из файла?

0

Решение

Некоторые варианты:

  • Храните их в двоичном формате, а не в текстовом формате. Это может быть небольшой проблемой для чтения и записи, но это может быть полезным для изучения. Проблема в том, что если вы хотите визуализировать числа с помощью текстового редактора, но вы можете найти какой-то инструмент для визуализации двоичных файлов. Предполагая 2 байта на целое число (тип short), ваш пример будет в гекса (не считая endian): 00 09 00 03 00 0a 00 07 00 09 00 00

  • Храните их с фиксированной длиной на номер. Пример: printf («% 03d», число) всегда будет создавать числа из 3 цифр. Ваш пример будет: 009003010007009000

  • Используйте запятую или точку с запятой: 9,3,10,7,9,0

0

Другие решения


По вопросам рекламы [email protected]