【问题标题】:Printf between two different for loops not working两个不同的for循环之间的Printf不起作用
【发布时间】:2016-11-11 01:07:19
【问题描述】:

我正在尝试使用 printf 进行调试。我已经在 for 循环之间插入了它,但我没有收到它的输出。我确信算法在它之后继续并到达最后,就像读者忽略它一样。

代码如下:

for (i = 0; i < lower; ++i) {
    buf3[i] = (buf[i] + buf2[i] )/2;
    printf("\n %d",buf3[i]);
}
printf("hiiiiiiiiiiiiiiiiiiii %d",i);

for (i; i < upper; ++i) {
    if (upper == num2) {
        buf3[i] += buf2[i]/2;
        printf("\n %d",buf3[i]);

    }
    else {
        buf3[i] += buf[i]/2;
        printf("\n %d",buf3[i]);

    }
}


printf("\n %d",upper);

“hiiiii...”消息是屏幕上看不到的消息。 (我尝试将它替换为许多其他消息,例如 int 或其他任何消息,但徒劳无功。我还尝试将另一个 printf 放在第一个 for 循环的正上方,但它再次没有返回任何内容。

请注意,上限和下限并不是很大的数字。

提前致谢。

【问题讨论】:

标签: c loops for-loop printf


【解决方案1】:

尝试在 %d 之后添加 \n。
在第二个循环中 i 也没有初始化

【讨论】:

  • 退出for循环后它不会被删除,所以它被“初始化”了。至于新线路,谢谢。
【解决方案2】:

有问题的printf 不打印换行符,因此输出被缓冲,直到稍后的printf 打印换行符。

添加换行符,您应该会看到输出:

printf("hiiiiiiiiiiiiiiiiiiii %d\n",i);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-08
    • 1970-01-01
    • 2020-07-11
    • 1970-01-01
    • 2023-03-08
    • 2015-10-18
    • 2017-04-13
    相关资源
    最近更新 更多