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.日パースのでしょうか?
ありがとうございます!
あなたは "I" ではなく "d" を使用しているためだヨルグ
を私をたくさん助けたこと、ありがとうございました! –