[ [[高橋のページ:http://tortoise1.math.ryukoku.ac.jp/~takataka/index-j.html]] ]
[ [[プログラミングおよび実習II]] ]
*プログラミングおよび実習II 2005年12月8日
#contents
**今日の課題: ファイル入出力/構造体
***課題1208-A (締切:12月8日,延長なし)
12月7日の演習問題のプログラムを実際に作成し,動作確認しましょう
-ソースのファイル名は yuubin.c としてください
-入力データファイルは,講義資料の例を参考に自分で適当なものを作ってください
**おまけ
***構造体の定義とtypedef
この授業ではtypedefは登場していないのですが,構造体の定義とtypedefとの関係で混乱している人がいるようですので,少し解説をしておきます.
(1) 構造体の定義の仕方,変数の宣言の仕方の基本
構造体を使う場合,基本的には,まずタグ名を指定して,どんなメンバから成る型であるかを定義する部分を書きます.そうすると,その構造体の型の変数を宣言する場合には,「struct タグ名」をintとかdoubleとかと同じように型の名前のように考えて使えばよいことになります.
// 構造体の定義(こういう型ですよ,という定義),タグ名はkenshincard
struct kenshincard{
char name[100];
double height;
double weight;
};
int main()
{
// 上で定義した型の構造体の変数の宣言(「struct kenshincard型」の変数a,b)
struct kenshincard a, b;
(2) typedefを使って名前をつけ直す
構造体の基本的な使い方では,「struct なんちゃら」と長くなるので,鬱陶しいかもしれません.そういう場合,typedefというのを使って,別の名前を付けたりすることができます.
// 構造体の定義(こういう型ですよ,という定義),タグ名はkenshincard
struct kenshincard{
char name[100];
double height;
double weight;
};
// typedefを使って,「struct kenshincard型」を「kc型」と定義する
typedef struct kenshincard kc;
int main()
{
// 上で定義したkc型の変数の宣言(「struct kenshincard型」と同じ意味)
kc a, b;
(3) さらに省略する
上の構造体の定義とtypedefの部分は,一緒にまとめて
// タグ名kenshincard型の構造体を定義するとともに,typedefでそれをkc型とする
typedef struct kenshincard{
char name[100];
double height;
double weight;
} kc;
と書いたり,さらにタグ名を省略して
// 構造体を定義し,typedefでそれをkc型とする
typedef struct {
char name[100];
double height;
double weight;
} kc;
と書いたりできます.いずれの場合も,この構造体の型の変数a,bを宣言する場合
kc a,b;
のように書くことになります.