C言語について質問です。
下記のような簡単な数式プログラムに入力文字が数値か判断する関数を組み込んだところ、アクセス違反になってしまいます。どこを修正したら良いでしょうか。
また、入力もscanf_s以外のものを使ったほうがいいでしょうか。
よろしくお願いします。
C
1#include <stdio.h> 2 3int main(void) 4{ 5 int tanka = 0; 6 int suryo = 0; 7 int kingaku = 0; 8 int zeikomi = 0; 9 int a = 0; 10 int b = 0; 11 12 printf("単価="); 13 scanf_s("%d",&tanka); 14 15 a = check_arg(tanka); 16 17 printf("数量="); 18 scanf_s("%d",&suryo); 19 20 b = check_arg(suryo); 21 22 kingaku = a * b; 23 zeikomi = kingaku * 108 / 100; 24 25 printf("金額=%d、税込み=%d",kingaku,zeikomi); 26 return 0; 27}
C
/*check_arg.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void check_arg(char* input_value)
{
int input_num = 0;
char *endptr = NULL;
input_num = strtol(input_value, &endptr, 10); if (endptr != '\0') { printf("整数を入力してください"); return -1; } return 0;
}
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/06 02:34