的代碼是:的scanf(「%d」)正常工作與字符
int main() {
scanf("%d");
puts("hello!");
getch();
return 0;
}
如果我輸入一個號碼等,程序崩潰,但如果我輸入像ħ一個字符,則程序成功執行。
請您解釋一下背後的原因嗎?
我在Windows XP上使用MinGW。
的代碼是:的scanf(「%d」)正常工作與字符
int main() {
scanf("%d");
puts("hello!");
getch();
return 0;
}
如果我輸入一個號碼等,程序崩潰,但如果我輸入像ħ一個字符,則程序成功執行。
請您解釋一下背後的原因嗎?
我在Windows XP上使用MinGW。
訪問指定%d
將不會得到除數字之外的其他字符。
如果你給其他角色的scanf得到執行,並沒有什麼會存儲。
當您給數字字符scanf得到執行並嘗試存儲值。
由於存儲位置不可用,程序崩潰。
嘗試使用在scanf
存儲位置像
scanf("%d",&a);
的每一個版本說警示存儲位置。 因此請嘗試檢查警告。
scanf("%d");
需要一個地址把成數,如果有一個嘗試
int x;
scanf("%d", &x);
你也應該從scanf
檢查返回值按手冊頁。我將這一點作爲練習,讓讀者按照他的意願去做。
嘗試
check = scanf("%c %d",&a, &b);
printf("check = %d \n",check);
我知道scanf函數需要一個變量的地址保存輸入。我只是在試驗它。檢查方法的返回值是有幫助的。 – 2014-11-01 07:53:53