由于某种原因,printf打印两次,但cout似乎没问题

时间:2011-04-21 18:30:02

标签: c++ c static-libraries

我写了一个库,我试图将它静态链接到我的主程序。我的主程序是用C ++编写的,但库是C语言。我注意到我的库中的一些调试printf语句运行了两次因为某些原因不应该出现,所以我开始注释掉代码。我现在离开了这里(不包括评论):

#include <iostream>
extern "C"
{
    include "audio.h"
}

int main(int argc, char** argv)
{
    std::cout << "Hello" << std::endl;
    audio_test();
    std::cout << "World" << std::endl;
    return 0;
}

功能音频测试根本不感兴趣。这是我试图在我的C ++项目中使用的C文件。

void audio_test()
{
    printf("TEST\n");
}

我的程序的输出是:

Hello
TEST

TEST
World

我现在不知道为什么会这样。

1 个答案:

答案 0 :(得分:2)

致电std::ios_base::sync_with_stdio(true),它可能会更好。