PROG 12.1 おうむ返し 構造体で受け取る

問題

[実行結果]
0101と同じ。ただし、構造体を使って入力を受け取る。
Please input | name gender age (システムの出力)
hanyu m 19 (← ここが入力)
name = hanyu (出力)
gender = m
age = 19

kasai m 41
name = kasai
gender = m
age = 41

takeuchi f 30
name = takeuchi
gender = f
age = 30

onoduka f 25
name = onoduka
gender = f
age = 25

^Z  (control zとEnter)
END (システムの出力)

[構造体] [例8.2の図を読み替えよう] [構造体メンバーへのアクセス]
  • 以下の構造体を用いよう。structで始まる部分がnigen構造体を定義。
  • typedefは、ningen構造体をNINGEN型と定義
typedef struct ningen {
   char name[31];
   char gender;
   int age;
} NINGEN;
例8.2 の図 (p.89)

shimei を name, seibetsu を gender, toshi を ageと読み替えよう。shinchoは定義していない。
構造体変数の各メンバーにアクセスするには. を使う。
例:ninをningen構造体を格納している変数とするとき、各メンバーの値をプリントするには
printf("%s, %c, %d", nin.name, nin.gender, nin.age);

[プログラム]


#include <stdio.h>

/* 構造体の定義、型の定義 */
typedef struct ningen {
    char name[31];
    char gender;
    int age;
} NINGEN;

int main (void) {

    NINGEN nin; /* NINGEN型 変数(構造体)nin を1つ。*/

    printf("Please input | name gender age\n");
    while (scanf("%s %c %d", nin.name, &nin.gender, &nin.age) != EOF) {
        printf ("name = %s \n gender = %c \n age = %d \n\n", nin.name, nin.gender, nin.age );
    }

    printf ("END \n");

    return(0);
}