【发布时间】:2011-10-13 17:30:24
【问题描述】:
这个问题以前也有人问过,但是一直没找到清晰简单的答案,所以再问一次……
我想知道,在不使用 stdio.h 以外的任何其他库的情况下,如何检查用户输入的内容是否为数值。基本上,要求用户输入一个介于 0 和 9 之间的值。如果数字介于这两者之间,则继续。例如,如果数字是 12,它会循环回到问题并再次询问数字。
它工作正常,除了如果我输入一个字母或一个十进制数字,它会进入一个无限循环......
基本上这是我的问题:如何检查输入的值是否不是字符和非小数?
这是代码的开头:(对不起,它是法语,但你明白了......)
int main()
{
int nb1, nb2, rand_1, rand_2;
int nb_coups = 0;
int points = 0;
printf("\n\n ------ BIENVENUE A LA GRANDE ROUE ! ------\n\n");
do{
//Saisie 1er nombre
printf("Entrez le premier nombre choisi (entre 0 et 9) : ");
scanf("%d",&nb1);
//Tant que le 1er nombre n'est pas compri entre 0 et 9, on le redemande
while(nb1<0 || nb1>9)
{
printf("Nombre incorrect. Entrez le premier nombre choisi (entre 0 et 9) : ");
scanf("%d",&nb1);
}
//On affiche le 1er nombre
printf("Le nombre choisi est : %d\n\n",nb1);
【问题讨论】: