繁体   English   中英

为什么断点续传代码不起作用?

[英]Why code before break doesn't work?

int main() {
    int input = 0;
    do {
        if(input > 1) {
            printf("You entered");
            break;
        }

        printf("Enter an integer (> 1): ");
        scanf("%d",&input);

    } while(input < 2);

    return 0;
}

您好,我是C新手。有人可以解释一下中断是什么吗? 在此程序中,断点“您已输入”之前的语句不会显示在控制台上。 我知道Java,但这完全不同。

12之间不存在整数。 更改

if(input > 1)  

if(input > 0)  

之后,如果您输入1则程序将输入if主体,然后打印You entered ,遇到break语句时,立即终止do-while循环。

“ break”语句使您的代码立即退出循环。

您看不到任何输出,因为仅在输入严格小于2时才循环,但if语句正在寻找严格大于1的输入。

那是行不通的。 如果输入1,则if语句将不会执行(因为1> 1为false),如果输入2,则循环将立即退出(因为2 <2为false)。

您可能需要在输入<= 2时循环,或者需要测试输入> = 1。

说了这么多...

标准输出通常是行缓冲的 ,这意味着在缓冲区已满或发送换行符之前,您不会在控制台上看到任何内容。 您要么需要手动刷新流,要么发送新行作为格式字符串的一部分。 要么

printf("You entered");
fflush(stdout);        

要么

printf("You entered\n");

应该管用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM