Записать зашифрованную строку в wofstream

У меня есть простая функция «шифрования», которая работает с wstring переменные, и я хочу записать результат этой функции в файл, используя wofstream,

Это мой код:

void save_file() {
wstring text = L"Text to be encrypted. The text is encrypted but not saved";
wstring enctext = encrypt(text);

wprintf_s(L"%s\n", enctext);
wofstream output_stream;
output_stream.open(L"myfile.enc");
output_stream<< enctext ;
output_stream.close();
}

wstring encrypt(wstring decrypted) {
wstring encrypted;
for (unsigned int i=0; i<decrypted.length(); i++) {
encrypted += wchar_t(int(decrypted[i]) + 128);
}
return encrypted;
}

Итак, проблема с этим … кодом заключается в том, что хотя wprintf_s Функция выводит весь зашифрованный текст, в письменном файле я вижу только символы внутри ASCII дальность (или, по крайней мере, это то, что мне кажется). Зашифрованный текст сохраняется до тех пор, пока не будет найден неизвестный символ (отображается ? в консоли). Я хочу сохранить любой символ, и я хочу, чтобы они сохранялись как широкие символы (по 1 слову каждый). Как я могу это сделать?

0

Решение

Вам нужно использовать fwrite() или iostream, эквивалентный для записи двоичных данных. fprintf() и эквиваленты для текста (как в читаемом тексте, а не в двоичном формате).

1

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

Других решений пока нет …

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