「ヘッダの使い方」の編集履歴(バックアップ)一覧はこちら

ヘッダの使い方」(2023/05/18 (木) 19:06:15) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

**構造体 ヘッダーとCPPの中にプログラムを書いていきます。 内容は前回までに作ったものを移植した(書き直した)ものにします。 ヘッダーの中身から説明します。 /*--------------Enemy.hの中身----------------*/ #pragma once // 敵構造体 struct tEnemy{ char name[64]; //名前 int HP; // 体力 int MP; // 魔力 }; /*-------------Enemy.cppの中身----------------*/ // cppはまだ何も書かない /*-------------main.cppの中身--------------------*/ #include <stdio.h> #include "Enemy.h" int main(){ tEnemy enemy = {"slime",10, 2}; printf("名前:%s,HP:%d,MP:%d\n",enemy.name,enemy.HP,enemy.MP); return 0; } ヘッダーの #pragma once はヘッダーの最初に必ず書くものです。 絶対に消さないでください。 構造体はヘッダーの中に書きます。 ※練習問題  第1問 Magic.h と Magic.cpp を作ってください。  第2問 char[] 名前、int 威力、int 消費MP を持つ魔法構造体を main.cpp 以外に作り、構造体変数として宣言して初期化して表示する。 **関数 構造体は ヘッダーしか使いませんでしたが、関数はヘッダーと cpp を両方使います。 /*-------------------Enemy.hの中身----------------------*/ #pragma once #include <stdio.h> // 敵構造体 struct tEnemy{ char name[64]; //名前 int HP; // 体力 int MP; // 魔力 }; //【関数の宣言のみを書く】 void EnemyOutput(tEnemy enemy); // 敵の内容を表示する関数 tEnemy EnemyInput(); // 敵の内容を入力して初期化する関数 /*--------------------Enemy.cppの中身---------------------*/ #include "Enemy.h" //【関数の内容を書く】 // 敵の内容を表示する関数 void EnemyOutput(tEnemy enemy){ printf("名前:%s,HP:%d,MP:%d\n",enemy.name,enemy.HP,enemy.MP); } // 敵の内容を入力して初期化する関数 tEnemy EnemyInput(){ tEnemy g; printf("敵の名前を入力してください。\n"); scanf_s("%s",g.name, 64); printf("敵のHPを入力してください。\n"); scanf_s("%d",&g.HP); printf("敵のMPを入力してください。\n"); scanf_s("%d",&g.MP); return g; } 関数はヘッダーに 「戻り値の型」「関数の名前」「引数」だけ書き、cpp に関数の内容を書いていきます。 /*-------------------main.cppの中身----------------------*/ #include "Enemy.h" int main(){ tEnemy enemy; enemy = EnemyInput(); EnemyOutput(enemy); return 0; } main.cpp の中身がだいぶすっきりしました。 関数や構造体を作るプログラムはなるべく、ヘッダーとcppに分けてなるべくmainはコンパクトにまとめましょう。 **列挙型 列挙型は構造体と同じようにヘッダーに書きます /*--------------Enemy.hの中身----------------*/ #pragma once enum e{SUN, MON, TUE, WED, THU, FRI, SAT}; //列挙型 eWeek の型宣言 **練習問題  第1問  新しくヘッダーとcppを作りその中に double型の変数を5つ受け取り、平均を求める関数を作る。  ユーザーに実数を5回入力してもらい、その平均を表示する。 第2問  社員ヘッダーを作り、識別子 JPN USA GBR GER RUS FRA を格納する列挙型の country を型宣言する。   名前、年齢、国籍コード(country型)をもつ社員構造体と社員構造体の内容を表示する関数を作り、  main.cpp で初期化して表示する。
**構造体 ヘッダーとCPPの中にプログラムを書いていきます。 内容は前回までに作ったものを移植した(書き直した)ものにします。 ヘッダーの中身から説明します。 /*--------------Enemy.hの中身----------------*/ #pragma once // 敵構造体 struct tEnemy{ char name[64]; //名前 int HP; // 体力 int MP; // 魔力 }; /*-------------Enemy.cppの中身----------------*/ // cppはまだ何も書かない /*-------------main.cppの中身--------------------*/ #include <stdio.h> #include "Enemy.h" int main(){ tEnemy enemy = {"slime",10, 2}; printf("名前:%s,HP:%d,MP:%d\n",enemy.name,enemy.HP,enemy.MP); return 0; } ヘッダーの #pragma once はヘッダーの最初に必ず書くものです。 絶対に消さないでください。 構造体はヘッダーの中に書きます。 **練習問題  第1問 Magic.h と Magic.cpp を作ってください。  第2問 char[] 名前、int 威力、int 消費MP を持つ魔法構造体を main.cpp 以外に作り、構造体変数として宣言して初期化して表示する。 **関数 構造体は ヘッダーしか使いませんでしたが、関数はヘッダーと cpp を両方使います。 /*-------------------Enemy.hの中身----------------------*/ #pragma once #include <stdio.h> // 敵構造体 struct tEnemy{ char name[64]; //名前 int HP; // 体力 int MP; // 魔力 }; //【関数の宣言のみを書く】 void EnemyOutput(tEnemy enemy); // 敵の内容を表示する関数 tEnemy EnemyInput(); // 敵の内容を入力して初期化する関数 /*--------------------Enemy.cppの中身---------------------*/ #include "Enemy.h" //【関数の内容を書く】 // 敵の内容を表示する関数 void EnemyOutput(tEnemy enemy){ printf("名前:%s,HP:%d,MP:%d\n",enemy.name,enemy.HP,enemy.MP); } // 敵の内容を入力して初期化する関数 tEnemy EnemyInput(){ tEnemy g; printf("敵の名前を入力してください。\n"); scanf_s("%s",g.name, 64); printf("敵のHPを入力してください。\n"); scanf_s("%d",&g.HP); printf("敵のMPを入力してください。\n"); scanf_s("%d",&g.MP); return g; } 関数はヘッダーに 「戻り値の型」「関数の名前」「引数」だけ書き、cpp に関数の内容を書いていきます。 /*-------------------main.cppの中身----------------------*/ #include "Enemy.h" int main(){ tEnemy enemy; enemy = EnemyInput(); EnemyOutput(enemy); return 0; } main.cpp の中身がだいぶすっきりしました。 関数や構造体を作るプログラムはなるべく、ヘッダーとcppに分けてなるべくmainはコンパクトにまとめましょう。 **列挙型 列挙型は構造体と同じようにヘッダーに書きます /*--------------Enemy.hの中身----------------*/ #pragma once enum e{SUN, MON, TUE, WED, THU, FRI, SAT}; //列挙型 eWeek の型宣言 **練習問題  第1問  新しくヘッダーとcppを作りその中に double型の変数を5つ受け取り、平均を求める関数を作る。  ユーザーに実数を5回入力してもらい、その平均を表示する。 第2問  社員ヘッダーを作り、識別子 JPN USA GBR GER RUS FRA を格納する列挙型の country を型宣言する。   名前、年齢、国籍コード(country型)をもつ社員構造体と社員構造体の内容を表示する関数を作り、  main.cpp で初期化して表示する。

表示オプション

横に並べて表示:
変化行の前後のみ表示:
目安箱バナー