【发布时间】:2020-10-15 01:13:57
【问题描述】:
我正在尝试做一件非常简单的事情(但花了几个小时没有结果):打印一行,睡一会,打印第二行。我希望下面的代码可以做到这一点,但是,它首先会休眠,然后同时打印两行!谁能看到我在这里遗漏了什么?
这是整个代码:
#include<thread>
#include<chrono>
int main() {
printf("%s","Wait.\n");
std::this_thread::sleep_for(std::chrono::seconds(3));
printf("%s","Thank you for waiting.");
}
计算机信息:Mac 10.14.16,编辑器:CLion
【问题讨论】:
-
尝试
fflush(stdout);尽管第一个 printf 中的'\n'应该已刷新 -
在我的机器上工作。有或没有
fflush。但我不得不添加代码。也许错误不在提供的代码中? minimal reproducible example 可能会有所帮助。使用的编译行也会很有帮助,它将显示如何它是如何编译和链接的。 -
@bolov 仅当设备被确定为交互式时才适用
-
@Eljay @WrathOfTux
fflush在我的情况下工作。看起来它取决于编译器或机器。例如,在 Leetcode 的编辑器中,无论有没有fflush,它都不起作用。在这个editor 上它工作 有或没有fflush。 -
@Eljay 几乎是整个代码,无论如何更新了我的问题。