コードに日本語の月名を列挙してみた. [プログラム一般]
前の続きで計算機にscanf()を入れようと思ったのですが、最後までPDFファイルを読むと、これはiPhone用のサンプルに使用する目的で、ありました。そこまで立ち入ると知識が乏しいので、やめて、似たようなものに月名を使ったサンプルがありましたので、こちらを日本語化してみました。コードはいじっているので、その通りではありませんが、scanf の日本語に、「入力を読み込む」を当ててみました。で、何故これを載せたかったかですが、日本語には月名に古来からの個人的には美しい名前があります。これを直接プログラムコードから呼びたかったわけです。コードはこれ:
#import <Foundation/Foundation.h>
#include <訳語.h>
// その月の日本語名と日数を表示する
int main (int argc, char *argv[])
{
自動解放プールを使用
{
列挙 月 { 睦月=1, 如月, 弥生, 卯月, 皐月, 水無月, 文月, 葉月,
長月, 神無月, 霜月, 師走 };
列挙 月 ある月;
int 日数;
ログ (@"月の番号を入力してください: ");
入力を読み込む ("%i", &ある月);
次の時切り替え (ある月)
{
次の時 1:ログ(@"睦月"); 日数=31; 中断;
次の時 3:ログ(@"弥生"); 日数=31; 中断;
次の時 5:ログ(@"皐月"); 日数=31; 中断;
次の時 7:ログ(@"文月"); 日数=31; 中断;
次の時 8:ログ(@"葉月"); 日数=31; 中断;
次の時 10:ログ(@"神無月"); 日数=31; 中断;
次の時 12:ログ(@"師走"); 日数=31; 中断;
次の時 4:ログ(@"卯月"); 日数=30; 中断;
次の時 6:ログ(@"水無月"); 日数=30; 中断;
次の時 9:ログ(@"長月"); 日数=30; 中断;
次の時 11:ログ(@"霜月"); 日数=30; 中断;
次の時 2:ログ(@"如月"); 日数=28; 中断;
default:
ログ (@"月の数字では有りません"); 日数=0; 中断;
}
次の条件の時 ( 日数 !=0 )
ログ (@"その月の日数は %iです。",日数);
次の条件の時 ( ある月==如月 )
ログ (@"...か 29 閏年であれば");
}
return 0;
}
で、このコードでは、さして月名を日本語にする必要が無いように思えますが、応用次第では、使い道はあると思っています。最後の方の、「ある月==如月は」英語では使えないはずです。で、define 定義はどこへ行ったのか、と思われる方もいるかと思いますが、いろいろ試して一々引っ張りだすのも面倒だと思い、訳語.h で/usr/include/ の中にdragdropで、ぶっ込みました。認証でパスワードだけです。再起動もログアウトも必要ありませんが、#ifndef … #endif は付け足しています。こうなれば、ライブラリ、プラグインと自分なりの関数を用意したくなるところですが、大した良いアイディアが浮かんできません。まだそこまでの余裕は生まれないと言うのが実状です。まあ、焦らずぼちぼち行きますか!
コメント 0