Как извлекать информацию из файла в код?

106
06 января 2022, 01:50

у меня есть файл, предположим file.txt в нем текст

Hello world Hello world Hello world Hello world Hello world Hello world

и есть код, который принимает данные и кодирует символы в трехзначные номера.

сейчас я кодирую их из переменной string txt потому что у меня нету реализации переноса данных с файла в цикл.

string txt = "Hello world";

пока не понял как это работает
int code[] = { 0, ...., 151, 113, .... };

for (auto a : txt) {
    auto i = coder.at(string(1, a));
    cout << i << " result " << endl;
}

Мне надо что бы данные шли из файла, так же мне интересно будет ли работать если файл будет очень большой, например 1 гигобайт данных в тексте.

возможно стоит как то по другому кодировать данные. Сейчас я точно не уверен, правильно ли я делаю, или нет.

Answer 1

Ну, через map - издевательство из серии "зачем просто, если можно сложно". Проще массив перекодировки, где символы - их стандартные ASCII-коды - служат индексами, а ваши числа - значениями - типа

int code[] = { 0, ...., 151, 113, .... };

где 151 находится в элементе номер 100 (=d), 113 - в элементе номер 101 (=e) и так далее.

Далее - все, просто читайте файл (или строку) по символу, но вместо символа c выводите число code[c].

Идея понятна?

P.S. Правда, не понимаю, что вы хотите получить... простенькое шифрование?

P.P.S. С чтением из файла

ifstream in("file.txt",ios::binary);
for(char c; in.get(c); cout << code[c]);
READ ALSO
C++ и многоуровневые вложенные try-catch

C++ и многоуровневые вложенные try-catch

Рассмотрим следующий код:

74
Как скомпилировать c++ файл?(ubuntu)

Как скомпилировать c++ файл?(ubuntu)

Подскажите как скомпилировать файлИспользую g++ пытаюсь скомпилить

101
Конструктор класса. Не пойму. C++

Конструктор класса. Не пойму. C++

Доброго времени суток!

94
Не получается сделать задание по массивам [закрыт]

Не получается сделать задание по массивам [закрыт]

Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском

194