1、printf不能直接输出一个类;
2、printf本身有问题,它不是类型安全的;
举个例子。下面的程序会输出什么呢?
int main(){
float a = 3.14;
printf("%d\n", a);
return 0;
}
会输出3吗?你可以试一试。这个时候我们需要对a进行强制类型转换,否则输出结果就不是我们想要的3。什么原因呢?这涉及到float、double、int的位分布问题了。这就体现了printf的不友好。
3、C++中其实也可以用printf,只不过可能会出一些问题,所以不提倡使用。
例如,同时使用cout和printf,可能会导致输出顺序出现偏差。