私のプログラムは、数字の1つに数字を入力した場合を除いて正常に動作し、無効なカード番号を宣言する代わりに終了します。isdigit を使用して問題を処理するにはどうすればよいですか?
#include <iostream>
#include <cmath>
#include <string>
#include <iomanip>
using namespace std;
int main()
{
//Input Variables
double cardnumber;
string name;
string address;
double TypeofBook;
string Title;
float RegularFine;
float BestSellersFine;
float MagazinesFine;
float HardcoverBooksFine;
double DaysLate;
char Choice;
char Y;
char N;
char y;
char n;
do
{ //Get Patron's info
cout << "Please Enter Patron's Library Card Number: \n";
cin >> cardnumber;
//Validate card number
while ((cardnumber <= 0) ||(cardnumber > 9999))
{
cout << "You have entered an invalid card number \n";
cout << "Enter a valid card number \n";
cin >> cardnumber;
}