作者chhsiao (bye~)
看板b96902HW
標題Re: [鋼彈] 單班計程2-1
時間Tue Oct 16 16:40:50 2007
※ 引述《mifan (人.魔.姊.浴)》之銘言:
: 解決辦法有很多
: 其中一個是你的 format string 寫成 "%d%d%d"
如果把 %c 換成 %d, 那後面儲存輸入值的變數 x 也要變成 int,
要不然 scanf 在寫入變數值的時候會出問題.
因為 %d 代表 4 bytes 的儲存空間, 所以 scanf 會寫 4 bytes 到 x 裡,
可是如果 x 是 char, 也就是說 x 在記憶體中只有 1 byte,
那 scanf 除了寫東西到 x 那一個 byte 之外, 還會寫到 x "後面" 的記憶體.
另外, 如果改成 "%d%d%d", 不是就不符合題目的輸入格式了嗎? ^^"
這樣在輸入一個字元的時候還是讀不進來.
比較簡單的解法是寫成: " %c %d %d".
在 scanf 的格式字串中, 空格 " " 也有特別的意義,
那就是 "忽略掉所有的泛空白字元, 包括空格、換行、tab 等",
所以不管輸入是
A 1 2
還是
A 1 2
或是
A
1
2
結果都可以正常讀入.
--
>_<
U
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.30.54