Запись в файл с помощью шестнадцатеричного кода
Суть задания такова нужно сделать приложение для перекодировки файла, а именно: нам дан txt файл с кодировкой UTF-8 с русским текстом-надо получить другой txt файл в котором при открытии в кодировке UTF-8 отображаются каракули но если мы переключимся на KOI8R то получаем текст изначальный. Я решил это сделать с помощью таблицы транслитерации- то есть получаю все коды из исходного файла в шестнадцатеричном виде и сопоставляю с кодами тех же букв но с кодировкой KOI8R, так вот коды я получил изначального файла (код ниже) но я не могу понять как записать в файл символы зная только их шестнадцетеричный код?
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <fstream>
#include <stdlib.h>
#define SIZE 100
#define IFILE "input.txt"
using namespace std;
int main()
{
char buf[SIZE];
FILE* f;
if ((f = fopen(IFILE, "r")) == NULL)
{
perror("fopen");
exit(1);
}
if ((fgets(buf, SIZE, f) == NULL) && ferror(f))
{
fprintf(stderr, "Error reading from stream\n");
exit(2);
}
std::string utf8Symbol = u8"a";
for (const auto& byte : utf8Symbol)
cout << std::hex << (byte & 0xFF) << ' ';
cout << '\n';
cout << endl;
cout << (int)buf[1] << endl;
cout << (int)buf[2] << endl;
cout << (int)buf[3] << endl;
cout << (int)buf[4] << endl;
cout << (int)buf[5] << endl;
Пытался сделать так но не работает он пишет просто как есть символы
std::ofstream out; // поток для записи
out.open("output.txt"); // окрываем файл для записи
if (out.is_open())
{
out << hex << "ffffffb0" << std::endl;
}