|
分類:[C/C++]
お世話になります。
VC++2005で入力をさせてその答えを表示させるプログラムを作っています
(教則に載ってるような入力範囲外だとそれを表示して終わるのではなく、絶対に入力させるしくみ)。
作ったサンプルは1〜3までの数字を入力させます。
#include "stdafx.h"
#include <iostream>
using namespace std;
int inputnum(void);
int _tmain(int argc, _TCHAR* argv[])
{ int a;
do{
a=0;
a=inputnum();
}while(a==0);
cout << a;
return 0;
}
int inputnum()
{
int ax;
cout << "入力\n";
cin >> ax;
if (ax!=1 && ax!=2 && ax!=3)
{
cout << "不正\n";
ax=0;
}
return ax;
}
数字を入れる分には1〜3ならちゃんと表示し、それ以外なら不正と表示して再度入力になります。
が、文字を入れると暴走します。
文字を入れても不正と表示して、再度入力させたいのですが、どうしたらいいでしょうか?
|