[問題] C,今天用scanf打出了奇怪的東西

看板C_and_CPP (C/C++)作者 (疥瘡貓)時間12年前 (2014/04/11 20:01), 編輯推噓2(204)
留言6則, 5人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) C 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 餵入的資料(Input): 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) 補充說明(Supplement): 各位大大好,小弟是C程式語言的初學者 今天在練習scanf函數時 我是設char 卻錯把scanf格式字串輸入成%d 像這樣: char ch printf("請輸入欲列印的字元:"); scanf("%d",&ch); 但結果這樣還可以顯示 並且印出來 如果是1就是笑臉 5是梅花6是黑桃 這種意外 我自己也覺得又氣又腦又好笑 就想要來請問各位大大這是打哪來的東西呢?怎麼會這個樣子?? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.128.194.72 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1397217709.A.129.html

04/11 20:09, , 1F
應該是ASCii對應的圖案
04/11 20:09, 1F

04/11 22:36, , 2F
04/11 22:36, 2F

04/11 22:41, , 3F
Windows 在解析 Code Page 時專有的特異功能
04/11 22:41, 3F

04/11 22:59, , 4F
想到當年程設作業要求印出撲克牌花色 但這是Windows專用啊XD
04/11 22:59, 4F

04/12 01:16, , 5F
關鍵字:Code page 437 / Windows code page
04/12 01:16, 5F

04/12 01:19, , 6F
另外用char接%d可能有損毀堆疊的風險,正式寫作時請避免。
04/12 01:19, 6F
文章代碼(AID): #1JHzcj4f (C_and_CPP)
文章代碼(AID): #1JHzcj4f (C_and_CPP)