読者です 読者をやめる 読者になる 読者になる

しもの日記

GuNCT4ねんせい

陰暦とシフトJIS(16進数?)

しょうもないプログラム第3弾。月を入力すると陰暦(旧暦)での呼び方を表示します。J科のMに聞いたswitch文使ってみました。ここまではよかったんですけど、最初のprintf文の中で改行しようとしたらエラー出たんですよ。文法間違えてないしなんでだろって思って、ググってみたらなんかシフトJISだと、「表」って漢字が16進数の0x955cで登録されてるらしいんですよね。で、改行のための「\n」の「\」は0x5cで登録されてるんですわ。だからうまく処理できないみたいでした。知恵袋の通りに「表示」を「表\示」にしたら問題なく動作。んーなんかこのへん難しくてよくわからん(・ω・`)


参考にした知恵袋
緊急 学習用C言語開発環境(仮)で #include <stdio.h> int main(void) { ... - Yahoo!知恵袋


#include <stdio.h>

int main(void)
{
	printf("知りたい月を入力してください。\n旧暦での呼び方を表\示します。\n");
	// printf("旧暦での呼び方を表示します。\n");
	
	int month;
	scanf("%d",&month);
	
	switch (month) {
	case 1:
		printf("睦月\n");
		break;
	case 2:
		printf("如月\n");
		break;
	case 3:
		printf("弥生\n");
		break;
	case 4:
		printf("卯月\n");
		break;
	case 5:
		printf("皐月\n");
		break;
	case 6:
		printf("水無月\n");
		break;
	case 7:
		printf("文月\n");
		break;
	case 8:
		printf("葉月\n");
		break;
	case 9:
		printf("長月\n");
		break;
	case 10:
		printf("神無月\n");
		break;
	case 11:
		printf("霜月\n");
		break;
	case 12:
		printf("師走\n");
		break;
	default:
		printf("入力が間違っていますよ。\n");
		break;
	}
	return 0;
}