字符串与输入输出
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); }