#include "stdafx.h"
#include <stdlib.h>
void main()
{
char buffer[20];
int num;
printf("Please enter a number\n");
fgets(buffer, 20, stdin);
num = atoi(buffer);
if(num == '\0')
{
printf("Error Message!");
}
else
{
printf("\n\nThe number entered is %d", num);
}
getchar();
}
上記のコードは、文字列形式の数値を受け入れ、atoiを使用して整数に変換します。ユーザーが10進数を入力すると、10進数の前のビットのみが受け入れられます。さらに、ユーザーが文字を入力すると、0が返されます。
今、私は2つのクエリを持っています:
i)ユーザーが小数点付きの数値を入力したかどうかをプログラムで検出し、エラーメッセージを出力したい。小数点以下の部分は入れたくないです。入力が無効であることを認識してもらいたい。
ii)文字がある場合にatoiが0を返す場合、ユーザーは数字の0も入力できるので、どうすればそれを検証できますか?
ありがとう。