Yo no les enfrentaría. Mejor que convivan según el caso que los necesites.
Lo primero que debes tener claro es cual es el lenguaje de programación que vas usar. Si es C no podrás usar cout, por otro lado si es C++ puedes usar ambos.
La razón de solo poder usar printf en C y en C++ ambos, es que printf es una función. Sin embargo cout no es una función, si no que son varias XD. El cout es una clase, que a su vez es un conjunto de variables, funciones etc etc.
Si ya sabes que es una función y una clase ya debes saber que C no soporta clases, pues no esta orientado a objetos y esta es la razón. C solo soporta funciones. C++ si soporta funciones, y también las clases.
Por esos motivos no debes compararlos ya que es como comparar agua y gato. XD
Algunas veces puedes usar funciones, y otras pues clases. Hay muchos puristas que dicen que si estas en C++ no deberías usar printf. En parte tienen razón y en parte no, por ejemplo, si vas a trabajar en una empresa no creo que les vaya gustar que uses printf ya que muchas cosas depende de una especie de "pacto" entre los programadores acerca de que cosas van a usar y que otras no. Pero si por otro lado es 100% tuyo el código no veo el por que no usarlo ya que en ese caso queda a tu criterio usarlo o no.
Realmente no tienen mucha diferencia, puedes hacer casi lo mismo con uno que con otro, y si no puedes ahí están las 2 XDD. ¿Si no se pudiera usar la hubieran quitado no crees?
Yo particularmente aprendí usar las 2. Cuando estoy en C uso printf y cuando estoy en C++ cout, pero hay veces que uso cosas de c también.
Mira... si estas en C++ te aconsejo que hagas pruebas. Intenta imprimir con una lo mismo que con otra. Y ya te darás cuenta por cual te decantas. Pero ojo no digo que no aprendas ni una ni otra si no mejor aprender ambas.
Otra cosa a tener en cuenta es que ambas son formas de imprimir cosas en consola, pero no vamos a tirar toda la vida imprimiendo cosas en consola ¿verdad? O puede que si XDD
En la programación actual se usa interfaz grafica de usuario. Existe 2 formas de gestionar datos, backend y frontend.
http://es.wikipedia.org/wiki/Front-end_y_back-end
El backend como su nombre indica "Back" o "atrás" esta echo para los programadores, no nos importa mucho el colorine de las ventanas, ya que el poder de la consola no te lo quita nadie.
Ya por otro lado esta el frontend que es lo que ve el usuario. El usuario suelen ser gordos y van de flor en flor por el bonito color que tienen, son vagos, no les gusta escribir, van pinchando aquí pinchando allí XDD. Pero como bien sabemos trabajamos para esos "gorditos" y se supone que dentro de un tiempo cuando domines bien la programación vas a querer hacer programas bonitos, con iconos, barras de desplazamiento etc, etc...
Todo depende de lo que vayas hacer... Aplicación de consola, aplicación gráfica, aplicación multimedia o incluso mezclada entre ellas.
Para mas info:
http://es.wikipedia.org/wiki/Interfaz_gr%C3%A1fica_de_usuario
http://es.wikipedia.org/wiki/Terminal_%28inform%C3%A1tica%29
http://es.wikipedia.org/wiki/L%C3%ADnea_de_comandos
Suerte