コマンドライン引数について。
コマンドライン引数についての質問です。
コマンドライン引数に適当な数字をいれ、金種別にわけるプログラムですが、
コマンドライン引数に負の値や、文字列を入力したときにはエラーが表示させるようにしているのですが、
数字と文字を混合したもののときはエラーが表示されずにそのまま処理されてしまいます。
初めの一文字目が数字だったらそのあとに文字を入れても実行されてしまうようです。
全て数字の場合のみ実行させてそれ以外はエラーメッセージを表示させたいのですが、どのようにすればいいでしょうか?
#include <stdio.h>
#include <stdlib.h>
int syubetu(int money,int *kinsyu);
int *kinsyu;
int main(int argc,char *argv[])
{
int *p,a;
p=(int*)malloc(sizeof(int)*9);
if(p==NULL){
printf("メモリ確保失敗\n");
exit(1);
}
a=atoi(argv[1]);
if(a>0){
syubetu(a,&p[0]);
printf("1万円 %d枚\n",p[0]);
printf("5千円 %d枚\n",p[1]);
printf(" 千円 %d枚\n",p[2]);
printf("5百円 %d枚\n",p[3]);
printf(" 百円 %d枚\n",p[4]);
printf("50円 %d枚\n",p[5]);
printf("10円 %d枚\n",p[6]);
printf(" 5円 %d枚\n",p[7]);
printf(" 1円 %d枚\n",p[8]);
}
else{
printf("入力エラー\n");
exit(1);
}
}
int syubetu(int money,int *kinsyu)
800字以上になるため、処理は省略します。
お礼
ありがとうございます、時間がかかりましたがようやく出来ました。 ありがとうございました。