Bueno, lo malo que tiene el printf y el scanf es que tienes que especificarle directamente que tipos de datos vas a leer o imprimir por pantalla.
Ejemplo para leer e imprimir un entero y una cadena:
Código C++:
Ver originalint dato=0;
char cadena[50];
//Leer un entero y una cadena del teclado
//Imprimir un entero y una cadena por pantalla
printf("Cadena: %s\n",cadena
);
Fíjate que al utilizar scanf los parámetros deben ser pasados como direcciones de memoria (de ahí el uso de &), excepto en el caso de las cadenas, que como sabrás, son una dirección de memoria al primer caracter de la cadena.
En el caso de printf no es necesario.
El %d se usa para leer e imprimir datos de tipo int y el %s para cadenas de caracteres (las cuales terminan en el caracter \0).