iT邦幫忙

0

C語言 使用"功"字會編譯失敗 [已解決]

c
  • 分享至 

  • xImage

摸不著頭緒,為何printf會一直失敗,然後測試發現用"功"字,就會跑出錯誤?

#include <stdio.h>
#include <stdlib.h>

int main()
{
    printf("功");

    printf("\n");
    system("pause");
    return 0;
}

https://ithelp.ithome.com.tw/upload/images/20220615/201422378Cy1AJz8iw.png


感謝各位解答,原來是Big5編碼問題,在"功"後面加入反斜槓或改變編碼即可解決。

#include <stdio.h>
#include <stdlib.h>

int main()
{
    printf("功\");

    printf("\n");
    system("pause");
    return 0;
}
查查許功蓋?
canrong iT邦新手 3 級 ‧ 2022-06-15 20:03:24 檢舉
"\功"看看,之前在開發的時候好像也遇到這問題,印象中是使用跳脫字元解決這怪問題。
Retex iT邦新手 1 級 ‧ 2022-06-15 21:45:15 檢舉
感謝以上2位,原來是這樣><
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

1
㊣浩瀚星空㊣
iT邦大神 1 級 ‧ 2022-06-15 21:12:34
最佳解答

調整一下檔案編碼。目前正常來說,預設的編碼因該UTF-8
但有少部份的編輯器還是會用BIG5碼(在編輯器上有時會出現的是ANSI)

只要使用BIG5。以下這些字「許功蓋過錯」,就有可能性出問題。
出問題的原因其實也很簡單。因為BIG5碼來說,其實也是兩種字元組合而成的。
而這些中文字都有包含到「"';」等一些程式會應用到的字元碼。而導致出錯。

改變編碼就可以免除這些問題。

看更多先前的回應...收起先前的回應...
Retex iT邦新手 1 級 ‧ 2022-06-15 21:51:46 檢舉

的確是使用BIG5編碼,換成UTF-8之後就不會跑出錯誤了,感謝

retex_z
如有解決到你的問題,麻煩最佳解。謝謝!!

Retex iT邦新手 1 級 ‧ 2022-06-16 23:05:44 檢舉

㊣浩瀚星空㊣
好的,已標記><

淺水員 iT邦大師 6 級 ‧ 2022-06-17 08:59:25 檢舉

功(0xA55C)
那個 5C 會被當成反斜線

0
黃彥儒
iT邦高手 1 級 ‧ 2022-06-15 19:11:41

gcc版本?
gcc 9.3, C17 + GNU 可以跑

Retex iT邦新手 1 級 ‧ 2022-06-15 21:44:44 檢舉

gcc 11.2.0,C17 (by MSYS2)

我要發表回答

立即登入回答