1
在以下程序中,除了格式化字符串中的第一个值(月份)之外的所有内容都正被读入SYSTEMTIME结构中。任何人都可以帮我解决这个问题吗?为什么sscanf不能读取格式字符串中的第一个参数?
#include <Windows.h>
#include <stdio.h>
int main()
{
SYSTEMTIME st;
char buf[50];
strcpy(buf, "6/23/2015 12:00:00");
sscanf(buf, "%d/%d/%d %d:%d:%d", &st.wMonth, &st.wDay, &st.wYear, &st.wHour, &st.wMinute, &st.wSecond);
printf("%d %d %d %d %d %d\n", st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond);
return 0;
}
程序的输出是:
2015 0 23 12 0 0
它应该是:
2015 6 23 12 0 0
尝试'%hu',而不是'%D'。 –
MinGW给出了几个警告:'警告:format'%d'需要'int *'类型的参数,但是参数3的类型'WORD *'[-Wformat =]' –
@Cool Guy,工作;如果发布一个关于* why *的细节的答案我会接受它给你信用。 :) –