看板 b96902HW 關於我們 聯絡資訊
※ 引述《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