#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 将其转换为整数。如果用户输入十进制数,则只接受小数点前的位。此外,如果用户输入一个字母,则返回 0。
现在,我有两个查询:
i) 我希望程序检测用户是否输入了带小数点的数字并输出错误消息。我不希望它占据小数点之前的部分。我希望它识别输入无效。
ii) 如果 atoi 在有字母的情况下返回 0,我如何验证它,因为用户也可以输入数字 0?
谢谢。