Как преобразовать шестнадцатеричную строку в расширенный код символа кода ascii и записать преобразованные коды в текстовый файл.
Пример входной строки:
std: string strInput = "FF2139FF"
Пример выходной строки должен быть «ÿ! 9ÿ» в текстовом файле.
Я попытался написать программу, как показано ниже, для записи в текстовый файл.
#include <string>
using namespace std;
string ConvertHexStringToAsciiString(string sInputHexString, int step)
{
int len = sInputHexString.length();
string sOutputAsciiString;
for (int i = 0; i < len; i += step)
{
string byte = sInputHexString.substr(i, step);
char chr = (char)(int)strtol(byte.c_str(), nullptr, 16);
sOutputAsciiString.push_back(chr);
}
return sOutputAsciiString;
}
void main()
{
string sInputHexString = "FF2139FF";
string sOutputAsciiString = "";
sOutputAsciiString = ConvertHexStringToAsciiString(sInputHexString, 2);
const char* sFileName = "E:\\MyProgramDev\\Convert_HexString_To_AsciiCode\\Convert_HexString_To_AsciiCode\\TestFolder\\1.txt";
FILE* file = fopen(sFileName, "wt");
if (nullptr != file)
{
fputs(sOutputAsciiString.c_str(), file);
fclose(file);
}
}
Этокажется, работает, но когда я открываю текстовый файл 1.txt с помощью блокнота, я не вижу ÿ и отображается только! 9. Я не уверен, как правильно отобразить его с помощью блокнота или мой код неверен?
Спасибо.