ちょっとした技術を身に付けたので、自分で何か作れないかと試してみたんですが・・・。
Posted: 2009年1月30日(金) 01:20
たとえば、数字を入力して1を入力した場合1の文章。2を入力した場合2の文章・・・・というようなプログラムを作っている時に、ちょっとわからないところがあったのでお聞きしたいんですが。
全体の仕様としては、まず最初に数字を入力するところがあって、数字を入力したらその数字の文章を表示して、Enterキーを押すとまた入力する画面に戻る。
っていうように何回も戻って入力したりできるようなものをつくってるんですが。
#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
int main()
{
char episode[2];
while(1){
char confirmation = 'n';
while(confirmation != 'y'){/*入力確認*/
system("cls");
printf("エピソード:");
scanf("%s",episode);
printf("エピソード:%sでよろしいですね?(Y/N)\n",episode);
scanf("%*c%c",&confirmation);
}
system("cls");
getchar();
if(*episode == '1')printf("1番です。");
if(*episode == '2')printf("2番です。");
/*・・・・・・・・・*/
if(*episode == '12')pritnf("12番です");
printf("Enterキーを押してください。\n");
getchar();
}
getchar();
return 0;
}
この場合1と2を入力したときはそれぞれ「1番です。」「2番です。」と表示されるしEnterキーを押せばちゃんと入力画面に戻るんですが、数字が2桁になると、
episode[0]の部分というか、例えば、12とした場合、1の部分しか読み取られてないみたいで12と入力しても「1番です。」と表示されてしまいます。
そこで、ifの条件をif(*episode == '12') ⇒ if(episode[0]=='1' && episode[1]=='2')としたら今度は(12を入力したときに)「12番です」と表示されるのは良かったのですが、
「1番です。」というのも表示されてしまいました。
「12番です」だけが表示されるようにしたいんですがわかりません。
問題はifの条件で2桁以上を判定する場合がわからないんですがどうすればいいんでしょうか?
全体の仕様としては、まず最初に数字を入力するところがあって、数字を入力したらその数字の文章を表示して、Enterキーを押すとまた入力する画面に戻る。
っていうように何回も戻って入力したりできるようなものをつくってるんですが。
#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
int main()
{
char episode[2];
while(1){
char confirmation = 'n';
while(confirmation != 'y'){/*入力確認*/
system("cls");
printf("エピソード:");
scanf("%s",episode);
printf("エピソード:%sでよろしいですね?(Y/N)\n",episode);
scanf("%*c%c",&confirmation);
}
system("cls");
getchar();
if(*episode == '1')printf("1番です。");
if(*episode == '2')printf("2番です。");
/*・・・・・・・・・*/
if(*episode == '12')pritnf("12番です");
printf("Enterキーを押してください。\n");
getchar();
}
getchar();
return 0;
}
この場合1と2を入力したときはそれぞれ「1番です。」「2番です。」と表示されるしEnterキーを押せばちゃんと入力画面に戻るんですが、数字が2桁になると、
episode[0]の部分というか、例えば、12とした場合、1の部分しか読み取られてないみたいで12と入力しても「1番です。」と表示されてしまいます。
そこで、ifの条件をif(*episode == '12') ⇒ if(episode[0]=='1' && episode[1]=='2')としたら今度は(12を入力したときに)「12番です」と表示されるのは良かったのですが、
「1番です。」というのも表示されてしまいました。
「12番です」だけが表示されるようにしたいんですがわかりません。
問題はifの条件で2桁以上を判定する場合がわからないんですがどうすればいいんでしょうか?