VC6 scanf float 出錯----bug?

VC6 scanf float 出錯----bug?

請有VC6.0的朋友試一下這個程序,運行的時候輸入一個數字,會出現runtime error(運行期錯誤),VS2008沒有錯誤,其它的版本沒有試。

查了一下資料微軟給出的官方解釋是:當應用程序從控制檯讀取的浮點值,到一個未初始化"浮動"類型的全局變量使用 scanf() 函數時,則會發生 R6002 浮點格式支持不加載"錯誤。 在使用任何格式輸入的例程中讀取值時,也會發生此錯誤。

微軟的官方解決方案:要變通解決此問題,初始化浮點變量或表達式中包含 scanf() 調用該例程中使用該變量。

看來變量的初始化確實是個很好的習慣,我們可以這樣改:

或者,在需要用到浮點數的程序的主函數中定義一個:

雖然這種方法不太正宗,呵呵,但是,自我認爲也不錯!

發佈了36 篇原創文章 · 獲贊 4 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章