我正在编写一个程序,将日期字符串转换为三个独立的 int 变量:年、月、日。
int m,d,y;
sscanf("2011-03-08","%i %*[-] %i %*[-] %i",&y,&m,&d);
cout << y<<" "<<m<<" "<<" "<<d<<std::endl;
sscanf("2011-03-07","%i %*[-] %i %*[-] %i",&y,&m,&d);
cout << y<<" "<<m<<" "<<" "<<d;
如果我转换 2011-03-08 或 2011-03-09,那么这一天将为 0,但对于 2011-03-07,06,……这一天是 7,6,……正如我所料。有人可以解释一下,为什么它不适用于 08 或 09 并且仅适用于他们?
先感谢您!