[問題] 新手發問,C語言印特殊符號

看板C_and_CPP作者 (低小調)時間9年前 (2016/05/14 09:13), 9年前編輯推噓4(4010)
留言14則, 6人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) CodeBlocks 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 我想要用char印一些特殊符號,像是照書上的作法 char ch=228; printf("%c",ch); 預期要能印出Σ符號,結果什麼都沒有出現…… 餵入的資料(Input): 預期的正確結果(Expected Output): Σ 錯誤結果(Wrong Output): 什麼都沒有 程式碼(Code):(請善用置底文網頁, 記得排版) char ch=228; printf("%c",ch); 補充說明(Supplement): 我還很菜,真的不知道是出什麼問題了, 請各位大大幫解惑QQ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.116.103.41 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1463188394.A.EFC.html

05/14 09:51, , 1F
C的char是用ASCII 查查看對照表 228應該不是可顯示字元
05/14 09:51, 1F

05/14 12:00, , 2F
ascii 並沒有 Sigma 的符號
05/14 12:00, 2F

05/14 12:34, , 3F
Char 的範圍是-125~124
05/14 12:34, 3F
那如果我想指定變數為特殊符號的話該怎麼做呢? 附帶一問,如果是想指定成中文字呢? 感謝~~ ※ 編輯: Dminor (140.116.103.41), 05/14/2016 12:46:49

05/14 13:21, , 4F
C++14標準,char是-128到127或0到255。不是-125~124
05/14 13:21, 4F
我寫C~~(這有差別嗎> <) 我該怎麼讓printf("%c",ch);印出Σ符號呢

05/14 15:19, , 5F
code page 437
05/14 15:19, 5F

05/14 16:15, , 6F
先呼叫 SetConsoleOutputCP(437); 就會印的出來
05/14 16:15, 6F

05/14 16:18, , 7F
通常預設會是 CP950,延伸閱讀 https://goo.gl/gf001f
05/14 16:18, 7F

05/14 16:21, , 8F
英語系國家預設通常是 CP437,屬於 extended ASCII
05/14 16:21, 8F

05/14 16:22, , 9F
因此書上的作法算是很常見的 :P
05/14 16:22, 9F

05/14 16:24, , 10F
現在大部分都用 Unicode 字元居多,可考慮用 _setmode
05/14 16:24, 10F

05/14 16:25, , 11F
_setmode(_fileno(stdout), _O_U16TEXT);
05/14 16:25, 11F

05/14 16:26, , 12F
wprintf(L"\u03A3"); // 詳閱 https://goo.gl/qCX6Ed
05/14 16:26, 12F

05/14 16:28, , 13F
如此一來Σ要跟中文字一起印到 Console 才不會有問題
05/14 16:28, 13F
感謝! ※ 編輯: Dminor (140.116.103.41), 05/15/2016 12:36:58

07/17 02:44, , 14F
抱歉 我怎麼突然冒出124這奇怪的數字
07/17 02:44, 14F
文章代碼(AID): #1NDdkgxy (C_and_CPP)