格式控制符

一直以来对各项繁杂的格式控制符掌握的不是很好, 总是知道的大概, 用的时候都是感觉差不多是这个样子....今天终于吃到苦头 = = ............

CString strTerminalID;
      strTerminalID.Format(TEXT("%10u"),m_nTerminalID);

exp.str("");
exp << "insert into T_B_CAR_REGISTER_INFO(id,TERMINAL_ID,PHONE_NUM, PROVINCE_ID, CITY_ID, FACTORY_ID, DEV_TYPE, DEV_ID, CAR_COLOR, CAR_NO)"
            << "values(T_B_CAR_REGISTER_INFO_SEQ.NEXTVAL, '"
            << strTerminalID                // 终端号
            << "','"
            << pDataTemp->szPhoneNum        // 手机号
            << "',"
            << pDataTemp->wProvinceID        // 省域ID
            << ","
            << pDataTemp->wCityID            // 市域ID
            << ",'"
            << strFactoryID                    // 制造厂商ID
            << "','"
            << strDevType                    // 终端型号
            << "','"
            << strDevID                        // 终端ID
            << "',"                
            << (int)pDataTemp->bBusColor    // 车牌颜色
            << ",'"
            << pDataTemp->szBusNo            // 车牌号码
            << "')";


        query.SetSQL(exp.str());

        bExcuteFlag = query.ExecSQL();

本来是想用 %10u 将一些位数不足10位的整数前面补'0'插入到数据库中的, 但是没想到%10u 默认的是左补空格符的...数据的错误直接导致程序的瘫痪!!!

稍微又复习了下格式控制符的相关内容, 发现其实格式控制符虽然繁杂, 但是还是有些规律可循的, 改天再系统的整理下这方面的知识吧...

原文地址:https://www.cnblogs.com/kyle-he/p/3732186.html