問題
- 名前(name)(ローマ字)、性別(gender)(mかf)、年齢(age)(整数)の3つのデータを受け取り、プリントを繰り返す。
- 3つのデータは半角スペースで区切ること
- 入力終了は、Windowsでは、Control zとEnter, UNIXでは Contrl d
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 (システムの出力)
#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); }
shimei を name, seibetsu を gender, toshi を ageと読み替えよう。shinchoは定義していない。
例:ninをningen構造体を格納している変数とするとき、各メンバーの値をプリントするには