アフィリエイト広告を利用しています

広告

posted by fanblog

2017年05月07日

久々のC言語1


/*
カレンダー情報を参照し、元号コードから元号文字を返す

calender.txt
H h 4 1989,1,8
S s 3 1926,12.25
T t 2 1912,7,30
M m 1 1868,9,8

*/
int gengou_str_get(int gengou_code, char *gengou_str)
{
typedef struct {
char gengou_oomoji[4];
char gengou_komoji[4];
int gengou_code;
char start_day[12];
}cale_t;

FILE *fp;
char *filename = "C:\\Study\\pleiades-e4.5-cpp-jre_20151002\\pleiades\\workspace\\C_Study_01\\src\\calender.txt";
cale_t cale_info;
cale_t *cale_info_p;

cale_info_p = &cale_info;

int ret;

/* ファイルのオープン */
if ((fp = fopen(filename, "r")) == NULL) {
fprintf(stderr, "%sのオープンに失敗しました.\n", filename);
return -1;
}

memset(cale_info_p, 0x00, sizeof(cale_t));
ret = -1;

/* ファイルの終端まで文字を読み取り表示する */
while( ( ret = fscanf( fp, "%s %s %d %s", cale_info_p->gengou_oomoji, cale_info_p->gengou_komoji, &(cale_info_p->gengou_code), cale_info_p->start_day ) ) != EOF ){
if (cale_info_p->gengou_code == gengou_code){
strncpy(gengou_str, cale_info_p->gengou_oomoji, sizeof(cale_info_p->gengou_oomoji));
printf("HIT!!\n");

/* ファイルのクローズ */
ret = 1;
break;
}

memset(cale_info_p, 0x00, sizeof(cale_t));
}
/* ファイルのクローズ */
fclose(fp);

return ret;
}

void TEST(void)
{
int now_gengou_code=3;
char gengou_str[4];
int ret;

memset(gengou_str, 0x00, sizeof(gengou_str));

#if 1
ret = gengou_str_get(now_gengou_code, gengou_str);
if(ret < 0){
printf("error gengou_str_get\n");
return;
}
printf("get %s\n", gengou_str);
#else
switch (now_gengou_code)
{
case 1:
printf("get M\n");
break;
case 2:
printf("get T\n");
break;
case 3:
printf("get S\n");
break;
case 4:
printf("get H\n");
break;
default:
printf("New\n");
break;
}
#endif
return;
}
この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバックURL
https://fanblogs.jp/tb/6242296
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
ファン
検索
<< 2017年05月 >>
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
最新記事
写真ギャラリー
最新コメント
タグクラウド
カテゴリーアーカイブ
月別アーカイブ
プロフィール
日別アーカイブ
×

この広告は30日以上新しい記事の更新がないブログに表示されております。