Я считываю побайтно в бинарном режиме файл и записываю в другой.
При записи назад в файл если в первом файле будет символ CR программа запишет его как CR.
Если там был символ LF программа запишет его как CRLF а не как просто LF.
Если же в файле попадется CRLF программа запишет его как CRCRLF.
CR это '\r',LF это '\n'
Записываю в файл методом std::fstream.write(), считываю методом read() с флагами std::ios::out | std::ios::in | std::ios::binary.
Как можно это выключить или что я делаю не так?
std::vector<unsigned char> sourceData;
unsigned char byte;
while(sourceFile.read((char *) &byte, sizeof(byte)))
{
sourceData.push_back(byte);
}
запись после алгоритма хаффмана
for(auto i : bitList)
{
if(i)
{
CurNode = CurNode->one_link;
}
else
{
CurNode = CurNode->zero_link;
}
if(CurNode->symbol != NULL)
{
fileOut.write((char*)&CurNode->symbol, sizeof(CurNode->symbol));
CurNode = MainNode;
}
}
Файл записи был открыт в текстовом формате, а не бинарном.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей