Я пытаюсь преобразовать входную строку ascii в шестнадцатеричный формат, используя спецификатор формата "% .2X". Я вставил программу ниже, которая делает то же самое. Но эта программа работает на сервере Linux и выдает неправильный шестнадцатеричный вывод.
#include <iostream>
#include <cstring>
#include <string>
using namespace std;
int main ()
{
char *buffer = "<9e>¥/gÿbbbbABCD";
char *newBuffer = new char[strlen(buffer)*2 + 1];
for(int i = 0; i< strlen(buffer); ++i)
{
sprintf(newBuffer+(2*i), "%02x", buffer[i]);
//cout<<"\t"<<newBuffer;
}
cout<<"\t"<<newBuffer;
return 0;
}
o / p: 3c39653effff2f67ffff6262626241424344
для этого расширенного ASCII-символа ¥, а giving дает ffff и ffff.
Подскажите пожалуйста, как правильно конвертировать.