常用的数据类型转换

 因为工作中经常遇到报文封装,文件读取等情况,频繁需要进行数据类型转换,因此做如下总结:

String 到 QString

QString userkey = QString::fromStdString(userkeylist);

 

Qstring去除额外的空格,让空格只剩一个

line = line.simplified();

 

QString 到 String

String a = b.toStdString();

 

string 到 double

aiWithTm.value = atof(m_value.c_str());

 

QString到char*(也就是char数组)

strcpy(v5info.prvkeyname,ui->lineEdit_2->text().toStdString().c_str())

 

QString到unsigned char *

先执行Qstring 到char*一样的步骤,然后执行unsigned char* push = (unsigned char*)m_data;直接改一下数据类型

 

char*或者unsigned char数组(也就是char数组)到String 这个一定要注意!不能直接声明一个string,然后用等于赋值,遇到0会截断的!!!要用string的assign方法!!

string m_frame;

m_frame.assign((char*)buf, len);

 

unsigned char 数组和char数组可以随意等于,因为其中的内容是一样的!!!

 

获取char *长度

int length = strlen(char * p)

 

QString 到 int

Bool ok;

Int a = QString.toInt(&ok,10);

 

Int到QString

QString a = QString::number(int32_t A);

 

int到 string

char id[32];

sprintf(id, "%d", rtu_id);

把变量打印成字符串

sprintf格式的规格如下所示。[]中的部分是可选的。

%[指定参数][标识符][宽度][.精度]指示符

若想输出'%'本身时, 请使用'%%'处理。

1. 处理字符方向。负号时表示从后向前处理。

2. 填空字元。 0 的话表示空格填 0;空格是内定值,表示空格就放着。

3. 字符总宽度。为最小宽度。

4. 精确度。指在小数点后的浮点数位数。

sprintf转换字符

%% 印出百分比符号,不转换。

%c 整数转成对应的 ASCII 字元。

%d 整数转成十进位。

%f 倍精确度数字转成浮点数。

%o 整数转成八进位。

%s 整数转成字符串。

%x 整数转成小写十六进位。

%X 整数转成大写十六进位。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值