Записать строку, закодированную алгоритмом Хаффмана, в бинарный файл на 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();
→ Ссылка