首页 文章

仅接受某个间隔之间的数字的循环

提问于
浏览
0

我有一个do-while循环,它应该只接受[0; 26],整数之间的数字,而不是无符号 . 但是当我键入一个不是数字的字母或其他字符时,它接受并将我的整数初始化为0.这是代码:

int cifra;
do
{
    printf("Insira a cifra a utilizar no intervalo [0;26]: ");
    scanf("%d", &cifra);
 }while(cifra > 26 || cifra < 0);

1 回答

  • 0

    如果您想使用scanf,您必须执行以下操作:请参阅注释 .

    #include<stdio.h>
    int main(void)
    {
        int c,cifra,result;
        do
            {
                printf("Insira a cifra a utilizar no intervalo [0;26]: ");
                result=scanf("%d", &cifra); //on successful read result must be one.(one element)
                while ( ( c = getchar() ) != EOF && c != '\n' ) ; //empty the buffer
            }
        while(cifra > 26 || cifra < 0|| result!=1);
    
        printf("You did it\n");
    }
    

相关问题