Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Ayuda con <<Cout de Chars en C++

Estas en el tema de Ayuda con <<Cout de Chars en C++ en el foro de C/C++ en Foros del Web. Abajo esta el codigo, supongamos que yo como texto pongo "hola mundo" , bueno, cuando hace el cout hasta la palabra hola me sale bien, ...
  #1 (permalink)  
Antiguo 17/09/2006, 00:55
 
Fecha de Ingreso: septiembre-2006
Mensajes: 6
Antigüedad: 17 años, 7 meses
Puntos: 0
Ayuda con <<Cout de Chars en C++

Abajo esta el codigo, supongamos que yo como texto pongo "hola mundo" , bueno, cuando hace el cout hasta la palabra hola me sale bien, luego de hola me salen caracteres "raros" , osea que la palabra "mundo" no me sale en el cout, es como si la presencia de un caracter espacio me rompiera el vector.. les dejo señalado en el codigo abajo donde sucede lo que digo, espero que me puedan ayudar... este programa no tiene ningun uso asi como esta, es solo una prueba de conceptos para realizar algo mas complejo.


void main()
{
char texto[10];
int i;

cout<<"Ingrese texto en el vector texto: "<<endl;
cin>>texto; /*SI ENTRO UN ESPACIO AQUI..*/

cout<<"Introduccion de texto finalizada"<<endl;

for (i=0; i<10; i++)
{
cout<<texto[i]; /*AQUI SALE EL PROBLEMA!!*/
}
getch();
}


PD: Tengo un parcial el lunes de archivos, pilas y colas, cualquier material bueno de referencia es agradecido ;)

Última edición por PabloSuarez; 17/09/2006 a las 01:01
  #2 (permalink)  
Antiguo 17/09/2006, 02:13
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años
Puntos: 2
tienes 2 problemas muy basicos.

1.- cin lee una linea de caracteres asta encontrase con un espacio, tabulador o fin de linea.
por tanto con cin solo puedes leer una sola palabra.

ejemplo:

Hola mundo
cin solo leera Hola e ignorara Mundo.

para la lectura de lineas completas, hay 2 funciones de cou, getline y get.


2.- tu array es muy pequeño incluso para el clasico Hola mundo.
tal vez contaste los 10 caracteres que componen esta palabra y es por eso que tu array lo creas de 10, lo que estas olvidadndo el el caracter de fin de cadena o '\0', nullo.

tanto en C como en C++, las cadenas de caracteres terminan con un caracter nullo('\0').

por tanto, para que un array contenga una cadena su tamaño seria:

el total de caracteres + 1.

en tu caso 11.

eso es todo.

aaahh, los caracteres raros.

eso es por que en el bucle for, estas imprimiendo todo el array, y en tu lectura solo leenaste con el Hola, los restantes 5 tendran basura.

Saludos
  #3 (permalink)  
Antiguo 17/09/2006, 12:58
 
Fecha de Ingreso: septiembre-2006
Mensajes: 6
Antigüedad: 17 años, 7 meses
Puntos: 0
¡Muchas gracias Nivel 7! realmente una respuesta muy completa , como veras recien llevo 3 dias programando
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:29.