#include<iostream>
#include<sstream> //add
#include<string>
using namespace std;
typedef unsigned char BYTE;
typedef unsigned int MMS_UNINT;
string ByteTostring(BYTE x) //BYTE 转 string
{
ostringstream o;
if(o << hex << (MMS_UNINT)x)
return o.str();
}
int main()
{
BYTE SixteenNumToStr = 0xFF;
cout << ByteTostring(SixteenNumToStr) << endl;
SixteenNumToStr = 0x33;
cout << ByteTostring(SixteenNumToStr) << endl;
string billInfo("get:");
billInfo += ByteTostring(SixteenNumToStr);//need
cout << billInfo << endl;
return 0;
}
/********************************************************************/
#include<iostream>
#include<stdio.h>
#include<sstream>
#include<string>
using namespace std;
typedef unsigned char BYTE;
typedef unsigned int MMS_UNINT;
string tostring(double x)//int输出地挺好的但是还you使用double可能输出科学型
{
ostringstream o;
if(o<<x)
return o.str();
}
string ByteTostring(BYTE x)//BYTE 转 string
{
ostringstream o;
if(o << hex << (MMS_UNINT)x)
return o.str();
}
double fromstring(string &s)
{
istringstream i(s);//初始化只能这样 不能使用=
double x;
if(i>>x)
return x;
}
int main()
{
char b[10]={NULL};
string a;
int c=58;
double d=c;
sprintf(b,"%.3f",1986.369);//后面的数字类型注意
a=b;
cout<<a<<endl;
sprintf(b,"%d",c);
a=b;
cout<<a<<endl;
a="";
cout<<a.length()<< " " << a.size() << endl;//string长度是length方法,char[]是strlen;
a=tostring(c);
cout<<a<<endl;
a.erase(a.begin(),a.end());
cout<<a.length()<<" " << a.size() << endl;
a="19865896";
c=fromstring(a);
cout<<c<<endl;
d=fromstring(a);//可能返回指数形式
cout<<d<<endl;
BYTE SixteenNumToStr = 0x33;
cout << ByteTostring(SixteenNumToStr) << endl;
SixteenNumToStr = 0xFF;
cout << ByteTostring(SixteenNumToStr) << endl;
return 0;
}