「ヘッダの使い方」(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 で初期化して表示する。
表示オプション
横に並べて表示:
変化行の前後のみ表示: