最好不要混用,因为cout流的维护比printf要高一层,cout要到回车或流刷新时才会输出。
而且ios::sync_with_stdio()决定了iostream是否和stdio同步,C++标准中规定stdio sync标志默认是true,但是有的平台下可能不会支持,或实现有差异。如果stdio sync是false的话,就可能出现输出顺序不对的情况。下列代码就是输出bbbaaa:
C/C++ code
#include <iostream>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cout << "aaa";
printf("bbb");
return 0;
}
所以没有特殊要求,请不要混用iostream和stdio。
尤其是如果你的程序使用unicode编程的话,要在控制台输出要用wcout或者wprintf并设置本地编码。这两种输出方式设置编码的方式是不同的,而且无法兼容,一个设置对了,另外一个就不能正常工作了。
温馨提示:答案为网友推荐,仅供参考