printf与cout混用输出先后顺序的问题
在代码中若使用了printf与cout,若不注意则会出现输出顺序与预想的不一致的问题。如下代码:
[php]
int main()
{
int i = 0;
for (i = 0; i < 3; i++)
{
std::cout << "i= ";
printf("%d\n", i);
}
return 0;
}
[/php]
输出结果为
[php]
0
1
2
i= i= i=
[/php]
这是因为cout使用了缓存,数据保存在缓存中,不会立即输出,导致printf先输出的问题。若要避免此问题,需要在cout最后写上endl输出。
[php]
int main()
{
int i = 0;
for (i = 0; i < 3; i++)
{
std::cout << "i= " << std::endl;
printf("%d\n", i);
}
return 0;
}
[/php]