QT中类型转换

文章目录

  • 前言
  • 一、QString与std::string
  • 二、QString与int
  • 三、QString与double
  • 四、QString与char*
  • 五、大小端转换


前言

本文涉及QString转int、QString转std::string、QString转double、QString转char*及大小端转换


一、QString与std::string

QString qstr = "你好!";
std::string stdstr = qstr.toStdString();         // QString 转 标准string          
QString qstr2 = QString::fromStdString(stdstr);  // 标准string 转 QString  

二、QString与int

// int 转 QString
QString qstr = QString::number(123);        

// QString 转 int
int i = atoi(qstr.toStdString().c_str());       // 方法1
int i = qstr.toInt();                           // 方法2
bool ok;                                        // 方法3
int i = qstr.toInt(&ok);                        // ok为true表示成功,false表示失败  

三、QString与double

// double 转 QString
double a = 123.123456;
QString str = QString::number(a, "f", 6);// 非科学计数法,小数点后保留6位小数

// QString 转 double
QString str = "123.123456";
double c = str.toDouble();

四、QString与char*

// QString 转 char*
QString qstr = "你好!"; 
std::string str = qstr.toStdString(); 
const char *ch = str.c_str();

// char* 转 QString
char* ch = new char[len+1]
memset(ch, 0, len+1);
QString test = QString(QLatin1String(ch));

五、大小端转换

#include  
// 网络传输一般要转换为大端 
unsigned short header = qToBigEndian((unsigned short)0xAA55);         // 转换为大端
unsigned short header = qToLittleEndian((unsigned short)0xAA55);      // 转换为小端  

你可能感兴趣的:(❤【QT】,qt,开发语言)