while循环不执行scanf()

#include <stdio.h>

int main() {
    float change = 0.0;

    printf("O hai!  ");
    while (change <= 0) {
        printf("How much change is owed?\n");
        scanf("%f\n", &change);
    }
    return 0;
}

如果输入为负,结果将是无穷无尽的“欠多少钱?”

斯蒂芬·莱希纳(Stephan Lechner)

scanf实际上是输入,但由于\n格式字符串"%f\n",输入了一个数字后,scanf等待下一个非空白字符返回。请注意,格式说明符中的空白允许scanf使用任何空白字符的序列,而不仅是一个,因此只要流提供空白字符,它就会“挂起”。

更改scanf("%f\n",&change)scanf("%f",&change)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章