while和scanf C语言

最近在学C ,有一句代码把我看懵了。。。

int getnights(void)
{
    int nights;
    
    printf("How many nights are needed? ");
    while (scanf("%d", &nights) != 1)
    {
        scanf("%*s"); //dispose of non-integer input
        printf("\t Please enter an integer , such as 2.\n");
    }
    
    return nights;
}

while (scanf("%d", &nights) != 1) 中的 != 1 到底是啥意思嘛?

经过一番努力,终于搞明白了~~~

while (scanf("%d", &nights) != 1)  //  表示 如果赋值失败,会执行"代码1"; 如果赋值成功,不会执行"代码1" 
{
    代码1
}
while(scanf("%d",&n)==1)    //  表示如果赋值失败,不会执行”代码1“; 如果赋值成功,会执行 “代码1”
{
    代码1
}

简单点,可以认为 scanf("%d", &nights) 赋值成功就是 1
1 != 1 , false
1 == 1 , true
亲爱的读者,你学到了么?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值