2012-10-17 74 views
1

可能重複時例外:
Correct way to use scanf/printf (and family) with fixed size types?Ç - 使用_int16

我已經寫在Visual Studio中的下列程序:

在運行程序和退出,我得到錯誤消息「堆棧變量b已損壞」。如果我用int替換_int 16,則不會引發異常。我該如何解決這個問題?我必須使用_int16,因爲我想模擬整數溢出。謝謝:)

+7

你scanf'的'使用假設一個完整的字整數一個16位整數。按照[手冊](http://www.cplusplus.com/reference/clibrary/cstdio/scanf/) –

+0

的格式,嘗試使用'「%hd」'作爲模式。謝謝:)我應該使用什麼呢?我對C有點新。 – Matthew

+0

閱讀scanf手冊頁,並查找「short int」。 – Barmar

回答

2

正如評論指出的那樣,解決辦法是更換

scanf("%d", &a); 

scanf("%hd", &a); 
+0

這隻有在'_int16'與'short'大小相同時纔有效,但它們的大小不必相同。 –