我正在編寫一個程序,它將日期字符串轉換爲三個單獨的int變量:年,月,日。sscanf C++將字符串拆分爲整數有時不起作用
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年,只爲他們?
預先感謝您!
我認爲這可能是由於八進制,請嘗試使用%d – QuentinUK 2013-02-24 12:47:17
你真的應該不能混合使用C和C++這樣。這些是不同的語言,所以避免在編寫C++ – LihO 2013-02-24 12:56:59