novato en c++

Julio Gouveia
16 de Enero del 2005
hola quisiera que porfavor me ayudaran,
la funcion cin<<variable solo lee hasta el primer espacio en blanco


ejm:

#include <string>
#include <iostream>
int n,l;
using namespace std;


int main()

{

string cadena;
cin>>cadena;
n=cadena.size();
for (int j=0;j<n;j++)
{
l=cadena[j];
cout<<char(l)<<endl;
}



return 0;

}

si por ejemplo el usario igresa hola por pantalla aparecera lo siguiente

hola
h
o
l
a
Press any key to continue


pero si ingresa por ejemplo "universidad santa maria".

universidad santa maria
u
n
i
v
e
r
s
i
d
a
d
Press any key to continue

el cin solo lee hasta el primer espacio en blanco

¿como puedo solucionar esto?

gracias de antemano

Julio Gouveia
Caracas, Venezuela.

humbertprada
16 de Enero del 2005
Hola......

Para leer cadenas de varias palabras utiliza la funcion gets();
Esta funcion si toma todos los caracteres y es de la libreria string.h
char cadena[100];
gets(cadena);

nunca la he utilizado con string como tipo de dato, pero para char funciona perfectamente.

Suerte!

Julio Gouveia
16 de Enero del 2005
#include <stdio.h>
#include <string.h>

int n,l;

int main()
{

char cadena[90];
char *p;
printf( "Escribe una palabra: " );
p = gets( cadena );
n=strlen(cadena);
for (int h=0;h<n;h++)
{
printf( "%c", cadena[h] );
printf("n");
}
return 0;
}



muchas gracias por la ayuda, era justo lo que necesitaba saber. suerte.

arkahe
16 de Enero del 2005
sabes puedes utilizar en lugat de cin utiliza

cin.getline( aki vael nombre del array, aki va el tamaño del array),

espero ke te sirva he!!!!

arkahe
16 de Enero del 2005
sabes puedes utilizar en lugat de cin utiliza

cingetline( aki vael nombre del array, aki va el tamaño del array),

espero ke te sirva he!!!!