字符串與輸入輸出

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: