全球有机认证机构:关于cout和printf的一段匪夷所思的简单代码,求高手帮忙!

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/30 01:16:23
我发现在VC++ 6.0编译器中,控制台程序中如果同时存在cout和printf输出,编译执行的结果是正确的(即输出将会按照cout和printf在代码中出现
的顺序输出在屏幕上)。
但是如果将结果输出到文件中(即以这样的方式:xxx.exe > yyy.txt xxx,yyy分别为程序名和输出文件名)后,打开yyy.txt察看结果,会发现
所有的cout,不管其在代码中出现的顺序如何,都会先于printf输出。
这是为什么????

在此我贴出一段会出现此种情况的代码如下:

#include <iostream.h>
#include <stdio.h>

int main()
{
printf( "%s","printf\n" );
cout << "cout" << endl;
return 0;
}
将此程序的结果输出到文件中结果为:

cout
printf
为什么?
求高手释疑。

另注:此种情况只出现在同时包含头文件"stdio.h"和"iostream.h"的
情形下;
如果使用命名空间
#include <iostream>
using namespace std;

该情况将不会出现