2011-08-21 188 views
-2

我正在從數據庫中讀取日期作爲字符串。我希望把它分解成整數,所以我可以將它傳遞給我的日期構造函數,所以我用了以下內容:從字符串中讀取整數

int y,m,d; 
sscanf(test,"%d-%d-%d",&y,&m,&d); 
cout<<"date is: "<<y<<"-"<<m<<"-"<<d<<"\n"; 
Date cdr; 
    cdr=Date(d,m,y); 
    setDate(cdr); 
cout<<"cdr is "<<cdr.getDay();//this is returning 0 

和這裏的getDay()

inline int getDay(void) const {return d_;} 

問題是COUT節目整數很好,但是當我通過這些我Date構造 輸出顯示這樣一串數字: 1176523603-1162761289-1176531567

你能幫助我解決這個問題... THX!

+0

如果數字打印正常,問題很可能與您的Date類有關。請顯示該代碼。 – Mat

+0

也許值得一提的是創建標準C'tm'結構的''strftime()'](http://www.cplusplus.com/reference/clibrary/ctime/strftime/)函數。 –

+1

@itcplpl:確定現在顯示輸出數字的代碼。最重要的是編輯上面的帖子來發布**完整的**程序。我們一直都會這樣做,新手會發布代碼,但總是錯誤在他們沒有發佈的代碼中。這就是爲什麼你應該發佈一個完整的程序。 – john

回答

1

看着張貼在錯誤上述評論Date類是這裏

class Date 
{ 
... 
Date(const Date& dd){} 
Date& operator=(const Date&){} 
... 
}; 

刪除這些方法都和代碼可能會奏效。

+0

但我爲什麼需要刪除它們? – itcplpl

+1

因爲它們是在複製Date對象時使用的,但是因爲您沒有正確定義它們,所以它們不起作用,並且會導致您看到的那種錯誤。但是你不需要爲你的Date類定義它們,因爲編譯器會爲你定義正確的。你應該閱讀一本關於C++的書,並閱讀關於拷貝構造函數和賦值操作符的部分,這是一個重要的話題,而且新手經常出錯。 – john

+0

會做,謝謝:-) – itcplpl