1
所以我發現了sscanf()函數的一個非常奇怪的行爲。 我有一個解析日期給出的字符串下面的代碼:sscanf()的行爲不一致()
#include <stdio.h>
int main()
{
int year, month, day;
sscanf("20151106","%4i%2i%2i",&year,&month,&day);
printf("Year: %04i\tMonth: %02i\tDay: %02i\n",year,month,day);
sscanf("20151107","%4i%2i%2i",&year,&month,&day);
printf("Year: %04i\tMonth: %02i\tDay: %02i\n",year,month,day);
sscanf("20151108","%4i%2i%2i",&year,&month,&day);
printf("Year: %04i\tMonth: %02i\tDay: %02i\n",year,month,day);
sscanf("20151109","%4i%2i%2i",&year,&month,&day);
printf("Year: %04i\tMonth: %02i\tDay: %02i\n",year,month,day);
sscanf("20151110","%4i%2i%2i",&year,&month,&day);
printf("Year: %04i\tMonth: %02i\tDay: %02i\n",year,month,day);
sscanf("20151111","%4i%2i%2i",&year,&month,&day);
printf("Year: %04i\tMonth: %02i\tDay: %02i\n",year,month,day);
return 0;
}
和輸出如下:
Year: 2015 Month: 11 Day: 06
Year: 2015 Month: 11 Day: 07
Year: 2015 Month: 11 Day: 00
Year: 2015 Month: 11 Day: 00
Year: 2015 Month: 11 Day: 10
Year: 2015 Month: 11 Day: 11
爲什麼的sscanf()解析08. 09.和不正確的一天?
在此先感謝!
Jorg
太感謝你了,這對我幫助很大! –