字符串与输入输出

1、字符串与数值之间的转换

      QString 类是Qt程序里经常使用的类,用于处理字符串。QString类可以进行字符串与数字之间的转换。

      QString类从字符串转换为整数的函数有:

int      toInt
long    toLong
short   toShort
uint     toUint 
ulong   toULong

2、进制之间的转换

  将一个整数转换为不同进制的字符串,可以使用QString的函数setNum()或静态函数number(),他们的函数原型是:

QString &setNum (int n,int base = 10)
QString number (int n,int base =10)
#其中n是待转换的整数,bas是使用的进制,缺省为10进制

3、一个小案例

案例截图:

 

实现代码:

QString类从字符串转换为整数

 1 void MainWindow::on_pushButton_clicked()
 2 {
 3    QString str = ui->lineEdit_num->text(); //读取数量
 4    int num = str.toInt();
 5    QString str1 = ui->lineEdit_price->text();  //读取单价
 6    float price = str1.toFloat();
 7    float all = num*price;
 8    str = str.sprintf("%.2f",all);
 9    ui->lineEdit_all->setText(str);
10 }

进制之间的转换:

十进制转化为十六进制和二进制

void MainWindow::on_BtnDec_clicked() //十进制转化为其他进制
{
   QString str = ui->lineEdit_ten->text();
   int val = str.toInt();
   str = str.setNum(val,16);  //十六进制
   str = str.toUpper();
   ui->lineEdit_sixteen->setText(str);

   str = str.setNum(val,2);  //二进制
   ui->lineEdit_two->setText(str);
}

二进制转化为其他进制

void MainWindow::on_pushButton_4_clicked() //二进制转化为其他进制
{
    QString str = ui->lineEdit_two->text();
    bool ok;
    int val = str.toInt(&ok,2);
    str = QString::number(val,10);  //二进制转化为十进制
    ui->lineEdit_ten->setText(str);

    str = str.setNum(val,16);       //二进制转化为十六进制
    str = str.toUpper();
    ui->lineEdit_sixteen->setText(str);

}

十六进制转化为其他进制

void MainWindow::on_pushButton_3_clicked() //十六进制转化为其他进制
{
    QString str = ui->lineEdit_sixteen->text();
    bool ok;
    int val = str.toInt(&ok,16);
    str = QString::number(val,10);       //十六进制转化为十进制
    ui->lineEdit_ten->setText(str);

    str = str.setNum(val,2);               //十六进制转化为二进制
    str = str.toUpper();
    ui->lineEdit_two->setText(str);

}

 

Tags: