换行符导致输出结果不完整

代码为:

#include<stdio.h>
int main()
{
    int num=1;
    for(num=1;num<=100;num++)
    {
        if(num<10)
        {
            if(num==7) printf("g");
            else printf("%d",num);
        }
        else
        {if(num % 7 == 0 || num % 10 == 7 )
                {
                    printf("g");}
        else{
                printf("%d",num);}}
    }
return 0;
}

编译的结果是:

img

但是当我给所有的printf后边加上换行符\n后

#include<stdio.h>
int main()
{
    int num=1;
    for(num=1;num<=100;num++)
    {
        if(num<10)
        {
            if(num==7) printf("g\n");
            else printf("%d\n",num);
        }
        else
        {if(num % 7 == 0 || num % 10 == 7 )
                {
                    printf("g\n");}
        else{
                printf("%d\n",num);}}
    }
}

编译的结果就变成了:

img


在dev和vs上都会出现这样的结果。
在dev上如果在调试界面逐步运行的话最后的运行结果也是正常的,在vs 2022上如果使用本地windows调试器运行的结果也是正常的,但是直接运行的话就会出现显示不完整的问题。
请问这是哪里出现了问题呢?

好几个printf啊,具体哪个加了换行符呢?

测试没问题。
能不能把你更改后的代码贴一下

打印太多行了,cmd把多余的清理了
你把换行改成空格

VS2019显示正常
运行编译后的结果也正常