Day48

思维导图

在这里插入图片描述

练习

完善文本编辑器

void Widget::on_saveBtn_clicked()
{
    QString fileName = QFileDialog::getOpenFileName(this,"选择文件","./", "文本(*.txt)");

    //文件操作
    //1、实例化文件对象
    QFile file(fileName);

    //2、判断文件是否存在
    if(!file.exists())
    {
        QMessageBox::information(this,"提示","文件不存在");
    }

    //3、打开文件
    if(!file.open(QIODevice::WriteOnly | QIODevice::Truncate))
    {
        QMessageBox::information(this,"错误","文件打开失败");
        return;
    }

    //4、文件读写
    QString msg = ui->textEdit->toPlainText();
    file.write(msg.toUtf8());       //读取文件中的所有信息

    //5、关闭文件
    file.close();
}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据代码,可以看出解析函数getSoftVersion中,先调用mkSoftVersion函数获取软件版本号,并将版本号存储在version字符串中。然后在version字符串中查找字符'B',如果找到了,则使用第二个sscanf()函数解析版本号;否则,使用第一个sscanf()函数解析版本号。 对于版本号V2.0.1B(build 230525),因为找到了字符'B',所以使用第二个sscanf()函数解析版本号。具体的解析格式为:"V%d.%d.%d%dB(build %02d%02d%02d)",解析出来的结果如下: - major:2 - minor:0 - patch:1 - custom:0 - year:23 - month:5 - day:25 其中,year表示的是23,而不是2023;month表示的是5,而不是5月;day表示的是25,而不是25号。因此,结果中的年份、月份、日期都是错误的。 为了解决这个问题,可以将解析年份、月份、日期的格式改为"%04d%02d%02d",然后在解析成功后,将解析出来的年份加上2000,得到正确的年份。修改后的代码如下: ``` void getSoftVersion(char *major, char *minor, char *patch, char *custom, char *year, char *month, char *day) { char version[48]; *custom = 0; mkSoftVersion(version); printf("version:%s\n", version); char* token = strchr(version, 'B'); if (token == NULL) { sscanf(version, "V%d.%d.%d.%dC(build %02d%02d%02d)", major, minor, patch, custom, year, month, day); } else { sscanf(version, "V%d.%d.%d%dB(build %04d%02d%02d)", major, minor, patch, custom, year, month, day); *year += 2000; } printf("major:%d, minor:%d, patch:%d, custom:%d, year:%d, month:%d, day:%d\n", *major, *minor, *patch, *custom, *year, *month, *day); return; } ``` 修改后的代码中,使用"%04d%02d%02d"格式解析年份、月份、日期,并在解析成功后将年份加上2000。这样就可以得到正确的年份、月份、日期了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值