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;
}
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image
-
no image
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/6242296
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック