printf("円記号を表示します:%d\n",'¥');でエラーが発生

MacBookProでC言語を学習中.

printfで円マークを表示させるプログラムを書いたが,コンパイルでエラーとなってしまう.

なぜコンパイルできないのでしょうか?


【エディタ】

Sublime Text

文字エンコードUTF-8


【ソース】

#include <stdio.h>


int main(void)

{


printf("円記号を表示します:%d\n",'¥');


return 0;

}


【エラー分】

sample5_2.c:6:46: error: character too large for enclosing character literal

   type

    printf("円記号を表示します:%d\n",'¥');


【分からないなりに考えたこと】

エラー文から¥の文字コードのサイズが大きいと考え,¥の文字コードを調べた.

しかし,¥の文字コードは194 165で2バイト.%dはint short型なので2バイトまで表示できるという認識.

したがって,エラーが出る理由が余計に分からない状況です...


ご教授いただければ幸いです.



MacBook Pro 13″, 10.14

投稿日 2020/07/17 05:59

返信
返信: 2

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

printf("円記号を表示します:%d\n",'¥');でエラーが発生

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。