好的,我有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
我的main方法有一个无限的do-while循环,用于监视系统并将读数发送到服务器。它包含在循环之外(之前)打印到终端的cout调用。我的问题是:
当我运行程序时,Cout不会打印到终端。为什么呢?
我做了一个测试程序:
#include <iostream>
int main()
{
std::cout << "TEST";
while(1)
{
}
return 0;
}
我发现这也不起作用,只有在我删除无限循环时才打印。我的程序功能正常,它监视和发送读数,但它不想打印到终端。我也首先担心它可能与多级编译有关,但我认为它可能是循环?有什么建议吗?
谢谢!
山茱萸
答案 0 :(得分:1)
您需要刷新iostream缓冲区:
尝试:
#include <iostream>
int main()
{
std::cout << "TEST";
std::cout.flush(); // Added this
while(1)
{
}
return 0;
}