elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [AYUDA] Entrada y Salida en C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [AYUDA] Entrada y Salida en C++  (Leído 3,528 veces)
anderson269

Desconectado Desconectado

Mensajes: 1


Ver Perfil
[AYUDA] Entrada y Salida en C++
« en: 30 Abril 2012, 03:56 am »

Hola amigos, soy nuevo en esto del C++. Tengo una duda, cuando compilo este código se indroduce el nombre de la persona pero cuando se ejecuta la salida (que deberia de decir Hola "nombre de la persona") sólo aparece la primera letra del nombre.

Código
  1. #include <iostream>
  2. #include <conio.h>
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.     char nombre;
  9.     cout << "Introduce tu nombre: ";
  10.     cin >> nombre;
  11.     cout << "Hola " << nombre;
  12.     getch();
  13. }


En línea

durasno


Desconectado Desconectado

Mensajes: 373


Ver Perfil
Re: [AYUDA] Entrada y Salida en C++
« Respuesta #1 en: 30 Abril 2012, 04:05 am »

hola! cuando empieces a ver arreglos vas a poder hacer lo que vos qres

EDIT: tambien tenes la clase string sino me equivoco

Saludos


En línea

Ahorrate una pregunta, lee el man
s00rk

Desconectado Desconectado

Mensajes: 195



Ver Perfil
Re: [AYUDA] Entrada y Salida en C++
« Respuesta #2 en: 30 Abril 2012, 04:10 am »

char nombre; Quiere decir un caracter por lo que solo guardara el primero que escribas y los demas "se perderan"(ya que veas sobre memoria podras entender a lo que me refiero hehe), por lo que si deceas es imprimir varios caracteres seria:
char nombre[100]; // Asi podrias guardar en nombre hasta 100 caracteres (0 - 99)
o tambien
char *nombre; // guardando un puntero de caracteres.

Bueno ahi ya con eso espero comprendas n_n, saludos y suerte.
En línea

STANHMAL

Desconectado Desconectado

Mensajes: 107


ςταηhmαl - hηαfε


Ver Perfil WWW
Re: [AYUDA] Entrada y Salida en C++
« Respuesta #3 en: 30 Abril 2012, 05:36 am »

Código
  1. #include <iostream>
  2. #include <conio.h>
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.     char nombre;
  9.     cout << "Introduce tu nombre: ";
  10.     cin >> nombre;
  11.     cout << "Hola " << nombre;
  12.     getch();
  13. }

no uses conio.

para hacer eso, necesitas la biblioteca string, para declarar una variable tipo string:

Código
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.     string nombre;
  9.     cout << "Introduce tu nombre: ";
  10.     cin >> nombre;
  11.     cin.ignore();
  12.     cout << "Hola " << nombre;
  13.     cin.get();
  14.  
  15.     return 0;
  16. }
  17.  

el cin.ignore(); es para que ignore el enter '\n', y no cause problemas después con la lectura de otra cosa.

el cin.get(); toma un carácter, este da una pausa esperando a que le des enter.

$4!u2
« Última modificación: 30 Abril 2012, 05:38 am por STANHMAL » En línea

Power Metal vs Reggaeton



Que es mi ordenador mi tesoro que todo el mundo ha de temer. Mi ley, el ratón y el módem. Mi única patria, la red
theluigy13etv

Desconectado Desconectado

Mensajes: 179


Primero se hace, después se mejora


Ver Perfil
Re: [AYUDA] Entrada y Salida en C++
« Respuesta #4 en: 3 Mayo 2012, 17:22 pm »

El problema radica en la forma de tu declaración. Lo que pasa es que char es un tipo que representa a caracteres individuales como 'L', 'a', '5', etc. Si deseas guardar un conjunto de caracteres debes guardarlo en una cadena (arreglo de caracteres). La forma tradicional de hacerlo es:

char nombre[25];

Donde el número especificado entre los corchetes indica que puedes almacenar 24 caracteres. (El caracter faltante es para almacenar el caracter nulo que indica el final de la cadena). El problema de este tipo de declaración está en que debes especificar el número máximo de caracteres a almacenar. Por ejemplo, en la declaración que puse líneas arriba, si es que el nombre contiene más de 24 caracteres, entonces te verías forzosamente a cambiar la declaración tal vez así:

char nombre[50];

Así, podrás almacenar máximo 49 caracteres. Pero, no siempre vamos a saber cuántos caracteres necesitamos almacenar, por lo la mayoría ahora utiliza otro tipo de declaración y no la anterior (la que se usaba antiguamente en C)

La mejor forma, es como lo mencionó STANHMAL, incluyendo en las directivas del preprocesador el archivo de cabecera string:
    
 #include <string>

y luego en la declaración, usar la clase string así:

string nombre;

De esta manera, no tienes porqué preocuparte por la cantidad de caracteres de tu cadena, ya que tu variable se va adecuar por sí solo según la longitud de tu cadena. De esta manera se hace un uso más eficiente de la memoria.
« Última modificación: 3 Mayo 2012, 17:29 pm por theluigy13etv » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines