En C y C++ puedes usar la función scanf(), y también gets().
scanf tiene delimitadores que te puede ser útiles. Por defecto es ’ ‘ (espacio), ‘\n’, etc.
Como en el ejemplo anterior, el delimitador son el espacio y enter, por lo que, el mismo resultado se daría reemplazando ‘cin>>cadena’ por ‘scanf("%s", cadena)!=EOF’
gets() lee la cadena hasta encontrar un retorno de carro o nueva línea. Por lo que:
gets(cadena) nos daría: cadena="IRÉ, CUANDO LA TARDE CANTE, AZUL, EN VERANO,"
para lograr el mismo efecto con scanf usamos scanf("%[^\n]\n", cadena);
Lamento no poder ser mas claro (tiempo), pero estoy seguro que muchos competidores reforzaran esto con excelentes ejemplos.
De todos modos, si aun hay alguien que esta comenzando, les puedo recomendar de http://www.icpc-bolivia.edu.bo :
http://www.icpc-bolivia.edu.bo/libros.html
http://www.icpc-bolivia.edu.bo/books/libro-solucionario_acmicpc_bolivia_v1.pdf (este tiene ejemplos muy simples y pueden ser de utilidad)
Saludos
Alberto