我創建了一個非常簡單的程序,它帶有一個菜單, 取值,然後將它記憶到 局部變量值中,最後用 第二個選項顯示該值。爲什麼%hd在scanf中是必需的?
我的問題是: 爲什麼程序只有在將「h」 添加到scanf參數時才起作用? 換句話說:scanf()和我的本地int值變量之間有什麼樣的關係 ?
謝謝!
p.S. (我用的開發 - C++(GCC)進行編譯。 與Visual Studio它的工作原理)
#include <stdio.h>
main() {
int value = 0;
short choice = 0;
do {
printf("\nYour Choice ---> ");
scanf("%d", &choice); /* replace with "%hd" and it works */
switch (choice) {
case 1:
printf("\nEnter a volue to store ");
scanf("%d", &value);
getchar();
printf("\nValue: %d", value);
break;
case 2:
printf("\nValue: %d", value);
break;
}
} while (choice < 3);
getchar();
}
很抱歉的壞文本格式 – Mario 2010-07-15 16:28:31