1
フォーマット指定子 "%2!"を使用して、入力ASCII文字列を16進形式に変換しようとしています。私は同じことをする以下のプログラムを貼り付けました。しかし、このプログラムは、Linuxサーバで正しく動作しません。拡張ASCII文字列が16進形式に変換されます
#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:この拡張ASCII文字の¥とYの3c39653effff2f67ffff6262626241424344 はFFFFとFFFFを与えています。
正しく変換する方法を教えてください。