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 *的細節的答案我會接受它給你信用。 :) –