在 Ubuntu 18.04 上使用 g++ 编译时,以下 C++ 代码工作正常:
#include <iostream>
using namespace std;
void wait(){
int t0 = time(0);
while(true){
if(time(0) >= t0 + 1){
return;
}
}
}
int main(){
while(true){
cout << "tick\n"; //Line 15
wait();
}
}
Run Code Online (Sandbox Code Playgroud)
这是tick每秒出现一个的输出:
tick
tick
tick
tick
tick
Run Code Online (Sandbox Code Playgroud)
但是,当删除第\n15 行中的它时,它似乎只是卡在某处而没有任何反应。\n代码到底做了什么?如果我不想在每个循环后都打印新行,我该怎么办?(我认为将其称为 C++ 中的错误会有点傲慢和错误)
另外,我知道这可能是构建延迟功能的一种非常糟糕的方式,我只是在胡闹。
首先,很抱歉,如果这是错误的类别,因为我不确定这个问题的原因是什么。
出于教育目的,我创建了一个小型“Hello World”应用程序
#include <iostream>
int main() {
std::cout << "Hello World\n";
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我尝试使用 Visual Studio 和 MINGW-64(g++ -m64 main.cpp) 将其编译为 64 位应用程序。它在我的 Windows 计算机上完美运行,但是当我尝试在最新的 Windows PE 中运行它时,它不会打印出任何内容。我也尝试过使用 std::cin 以便程序不会立即停止,但同样的事情发生 - 没有输出,也没有错误。

我知道 WinPE 在包含的库和子系统方面非常有限,但我真的认为这个简单的 Hello World 应用程序可以运行。WinPE环境是64位的,这就是为什么我编译为64位
有什么想法我应该从哪里开始吗?