Lesson2 メッセージの表示
簡単なスクリプトを改良してメッセージを表示できるようにする。
コードは
0=終了
1=メッセージ
です。
さっきと違ってバイナリではなく文字コードになっていることに気をつけてください。
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
char Data[10][80]={
"1あなたは誰ですか?",
"1僕はバンタン太郎です。",
"1嘘だッ!!!",
"0",
};
int main()
{
int Adr=0;
printf("スクリプト開始します。\n");
while(Data[Adr][0]!='0'){//先頭のコードを見る
switch(Data[Adr][0]){
case '1'://メッセージ
printf("%s\n",Data[Adr]+1);
getch();//入力待ち
break;
}
Adr++;
}
printf("\nスクリプト終了します。\n");
getch();//入力待ち
return 0;
}
|
もう少し改良してみましょう。
今までは最後のコードにくると終了してしまいますが、ジャンプ処理を追加して
継続できるようにします。
2=ジャンプのコード。
次の数値が新しいアドレスになる。
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
char Data[10][80]={
"1あなたは誰ですか?",
"1僕はバンタン太郎です。",
"1嘘だッ!!!",
"21",
};
int main()
{
int Adr=0;
printf("スクリプト開始します。\n");
while(Data[Adr][0]!='0'){//先頭のコードを見る
switch(Data[Adr][0]){
case '1'://メッセージ
printf("%s\n",Data[Adr]+1);
getch();//入力待ち
break;
case '2'://ジャンプ
Adr=atoi(Data[Adr]+1);
continue;
break;
}
Adr++;
}
printf("\nスクリプト終了します。\n");
getch();//入力待ち
return 0;
}
|
atoiの命令で文字を数値に変換します。
"1"→1 となっているわけです。
continueを使っている訳はそのまま進むとAdr++を実行してしまい、1つ多くなってしまうからです。
(continueを外して実行してみよう)