0

好的,我有 5 个 c++ 文件:

PegRTU.cpp、PegIOHandler.cpp、PegIOHandler.h、pegio.c、pegio.h(PegRTU.cpp 包含我的 main() 方法)。

我使用 gcc 和 g++ 使用以下命令编译它们:

gcc -c pegio.c -o pegio.o
g++ -c PegIOHandler.cpp -o PegIOHandler.o -std=c++0x
g++ -c PegRTU.cpp -o PegRTU.o -std=c++0x
g++ -o pegrtu *.o -lopendnp3

我的主要方法有一个无限循环,用于监视系统并将读数发送到服务器。它在循环外(之前)包含一个 cout 调用以打印到终端。我的问题是:

当我运行我的程序时,Cout 不会打印到终端。为什么?

我做了一个测试程序:

#include <iostream>

int main()
{
  std::cout << "TEST";

  while(1)
  {

  }
  return 0;
}

而且我发现这也不起作用,只有在我删除无限循环时才会打印。我的程序功能正常,它监控并发送读数,但它不想打印到终端。我也首先担心它可能与多阶段编译有关,但我认为这可能是循环?有什么建议吗?

谢谢!

康奈尔

4

1 回答 1

1

您需要刷新 iostream 缓冲区:

尝试:

#include <iostream>

int main()
{
  std::cout << "TEST";
  std::cout.flush(); // Added this
  while(1)
  {

  }
  return 0;
}
于 2013-08-01T14:30:33.200 回答