vs2019中while条件为真时,不显示,要按0回车才显示,这是什么情况,求解释

img


vs2019中while条件为真时,不显示,要按0回车才显示,这是什么情况,求解释

#include <stdio.h>

int main()
{
    int h, s, input;
    int n = 60;
    scanf_s("%d", &input);

    if (input > 0)
    {
        h = input / n;
        s = input % n;
        printf("hours = %d\nseconds = %d", h, s);
    }

    return 0;
}

img

错误:
1、第一个 scanf 语句里面不能加换行 \n,一般 scanf 语句中都是不加换行符的
2、while 要改为 if,因为不改的话,程序会一直执行下去,这里能成功只是因为你在 while 里面加了一个 scanf 语句,卡住了程序,程序实际上并没有结束执行,所以第二个 scanf 语句要去掉

建议:
因为VS比较特殊,输入语句得用 scanf_s ,不然就得加宏定义 #define _CRT_SECURE_NO_WARNINGS,个人建议直接用 scanf_s 就好

去掉scanf里面的‘\n’