hit1160300508 2021-10-14 09:31 采纳率: 0%
浏览 10
已结题

std::wstring出现前四位字符丢失的问题

这是一个偶现的问题,在vc2013的c++环境下出现,Debug x64,最早出现在下面的代码中:

wchar_t temp[128] = { 0 };
swprintf_s(temp, 128, L"%04d-%02d-%02d %02d:%02d:00", i1, i2, i3, i4, i5);
sStartTime = temp;//以当前日期时间为例,sStartTime正常应为 L"2021-10-14 09:19:53",实际却为L"-10-14 09:19:53"

代码的目的是为了将int类型存储的各部分日期合成一个特定格式的日期字符串,i1到i5均为int类型的参数(i1-i5为简化表示参数,不要过分纠结),以当前日期时间为例,sStartTime 应该是:L"2021-10-14 09:19:53",但实际上却出现了调试过程中发现sStartTime 为L"-10-14 09:19:53"的情况
由于该问题只在调试过程中出现,实际软件运行中未出现过,所以一直没有特别留意,直到今天调试时在另一处代码又出现了一个类似的情况:

namespace MC{
    namespace DEVICEINI{
    const std::wstring  PRINTER_RUN_LAST_TIME = L"printer_run_last_time";
    }
}
...
std::map<std::wstring, std::wstring> sMap;
sMap[MC::DEVICEINI::PRINTER_RUN_LAST_TIME] = sTime;//查看sMap内部变量时发现,唯一键值对的键为L"ter_run_last_time"

该部分代码运行后,发现sMap中存储的唯一键值对的键竟然是L"ter_run_last_time",这就令人难以理解了
是否有人遇到过这种情况,又是什么原因会导致该问题的出现?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 10月22日
    • 创建了问题 10月14日

    悬赏问题

    • ¥15 scottplot5
    • ¥15 想问问这个建模怎么编程没有思路
    • ¥15 关于imageENview(ImageEN)中新建图层并根据鼠标位置添加图标
    • ¥100 用两台电脑局域联网进行MT5的EA参数优化,但是连接不上
    • ¥15 FastAPI报错: AsyncSession不是有效Pydantic类型
    • ¥50 这Mac系统提示虚拟内存不足,怎么解决
    • ¥15 Rs232电路无法收发数据,求帮助
    • ¥15 百度cookie扫码登录器
    • ¥15 微机原理汇编语言debug调试实验
    • ¥23 matlab可以把相图转换为庞加莱映射吗