vs2010中如何格式化输出系统时间?

tingting5278910 2012-09-21 02:26:14
我想问一下,我用的是vs2010编译器创建win32项目,我想格式化输出时间,下面是我的代码,编译没问题,但是运行出现中断,请帮忙看一下,应该怎么输出时间??

RECT rt;//定义一个矩形变量
::GetClientRect(hwnd, &rt);//获取客户区

LPCWSTR str = {0};
SYSTEMTIME tm;
::GetLocalTime(&tm);//获取当地时间
sprintf_s((char*)str, strlen("%4d.%02d.%02d %2d:%2d:%2d"), "%4d.%02d.%02d %2d:%2d:%2d", tm.wYear,
tm.wMonth, tm.wDay, tm.wHour, tm.wMinute,tm.wSecond);//将时间格式化
HDC hdc;

hdc = GetDC(hwnd);
TextOut(hdc, 10, 10, str, 100);//在窗口中输出字符串。
ReleaseDC(hwnd, hdc);

...全文
433 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Gloveing 2012-09-21
  • 打赏
  • 举报
回复
char str[100] = {0};
sprintf_s(str, 100,"%4d.%02d.%02d %2d:%2d:%2d", tm.wYear,
tm.wMonth, tm.wDay, tm.wHour, tm.wMinute,tm.wSecond);//将时间格式化
tingting5278910 2012-09-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

LPCWSTR str = {0};
改成
char str[100] = {0};
[/Quote]
我改成了char str[100] = {0},虽然没有出现中断,但是显示出来的是一堆乱的东西。
tingting5278910 2012-09-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

C/C++ code

LPCWSTR str = {0}; // str指向一个有一个元素的char数组



C/C++ code
sprintf_s((char*)str, strlen("%4d.%02d.%02d %2d:%2d:%2d"), "%4d.%02d.%02d %2d:%2d:%2d", tm.wYear,
tm.wMonth, tm.wDay, tm.wHo……
[/Quote]
应该主要不是这个问题,因为我再strlen("%4d.%02d.%02d %2d:%2d:%2d")+ 100之后还是出现同样的问题。
mujiok2003 2012-09-21
  • 打赏
  • 举报
回复

LPCWSTR str = {0}; // str指向一个有一个元素的char数组


sprintf_s((char*)str, strlen("%4d.%02d.%02d %2d:%2d:%2d"), "%4d.%02d.%02d %2d:%2d:%2d", tm.wYear,  
tm.wMonth, tm.wDay, tm.wHour, tm.wMinute,tm.wSecond);//越界了
一叶之舟 2012-09-21
  • 打赏
  • 举报
回复
LPCWSTR str = {0};
改成
char str[100] = {0};

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧