Записать строку, закодированную алгоритмом Хаффмана, в бинарный файл на C++
У меня есть готовый алгоритм Хаффмана, он правильно переводит исходную строку в строку из нулей и единиц. Как записать эту строку в бинарный файл?
Ответы (1 шт):
Автор решения: Shinshila Anarhist
→ Ссылка
Допустим, ваша строка находится в переменной str
string str = "010001010";
ofstream out(“TEXT.txt”,ios::binary|ios::out);
out.write((char*)str.c_str(),str.length()+1);
out.close();
Однако настоятельно рекомендую сделать так:
string str = "010001010";
size_t ln = str.length()+1;
ofstream out(“TEXT.txt”,ios::binary|ios::out);
out.write((char*)&ln,sizeof(ln));
out.write((char*)str.c_str(),ln);
out.close();
Чтобы потом можно было считать файл, не запоминая, какой длины у вас была строка.
istream in(“TEXT.txt”,ios::binary|ios::in);
size_t ln;
in.read((char*)&ln, sizeof(ln));
char * buf = new char[ln];
in.read(buf,ln);
string str = buf;
delete[] buf
in.close();