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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  fallo al introducir datos!!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: fallo al introducir datos!!  (Leído 2,257 veces)
chicainge

Desconectado Desconectado

Mensajes: 15


Ver Perfil
fallo al introducir datos!!
« en: 20 Agosto 2014, 00:26 am »

Hola tengo un problemiya al leer los datos, pongo el nombre y se acaba el programa porque pasa esto?? y otra cosa, el getline es como se introduce una cadena en el string?? GRACIASSS:)

Código:
/*3-Una farmacia desea almacenar sus productos en una estructura. De cada producto hay
que almacenar la siguiente información: código, nombre, descripción (cadena de
caracteres), laboratorio, proveedor, precio y fecha de caducidad. Diseñar la estructura de
datos y un procedimiento que permita introducir los datos de un medicamento en esa
estructura.*/

#include <iostream>

using namespace std;

typedef struct{

unsigned codigo;
char nombre;
string descripcion;
char laboratorio;
char proveedor;
unsigned precio;
unsigned fechacaducidad;

}producto;

typedef producto P[20];

int main(){
 P p;
 cout<<"introduce el producto: "<<endl;
 cout<<"NOMBRE: ";
 cin>>p[0].nombre;
 cout<<endl<<"CODIGO: ";
 cin>>p[0].codigo;
 cout<<endl<<"PRECIO: ";
 cin>>p[0].precio;
 cout<<endl<<"DESCRIPCION: ";
 getline(cin,p[0].descripcion);
 cout<<endl<<"LABORATORIO: ";
 cin>>p[0].laboratorio;
 cout<<endl<<"PROVEEDOR: ";
 cin>>p[0].proveedor;
 cout<<endl<<"FECHA DE CADUCIDAD(INTRODUCIR DIAMESAÑO): ";
 cin>>p[0].fechacaducidad;

}


En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: fallo al introducir datos!!
« Respuesta #1 en: 20 Agosto 2014, 01:49 am »

Nombre es char, no string. Revisa los tipos.


En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: fallo al introducir datos!!
« Respuesta #2 en: 20 Agosto 2014, 04:29 am »

tengo un problemiya al leer los datos, pongo el nombre y se acaba el programa porque pasa esto?
Porque, como ya te comento ivancea96, el campo nombre debe ser de tipo string, no char. Mismo caso con los campos laboratorio y proveedor.

y otra cosa, el getline es como se introduce una cadena en el string?
El operador ">>" se utiliza para leer y almacenar una palabra en un string, cuando se desea leer una linea de texto se utiliza getline. Esa función la debes utilizar para asegurarte de leer los campos mencionados completos.

Otro detalle importante es el uso intercalado del operador ">>" con getline, el problema ahí es que usualmente el operador ">>" ignora el espacio pero getline no lo hace. La solución es descartar el resto de la linea con, por ejemplo, la función miembro ignore.

Una forma mas sencilla pero que funciona solo en el caso base (cada linea terminada inmediatamente con el avance de linea) es:
Código
  1. cout << "NOMBRE: ";
  2. getline(cin, p[0].nombre);
  3.  
  4. cout << "CODIGO: ";
  5. cin >> p[0].codigo;
  6.  
  7. cout << "PRECIO: ";
  8. cin >> p[0].precio;
  9. cin.get();
  10.  
  11. cout << "DESCRIPCION: ";
  12. getline(cin, p[0].descripcion);
  13.  
  14. cout << "LABORATORIO: ";
  15. getline(cin, p[0].laboratorio);
  16.  
  17. cout << "PROVEEDOR: ";
  18. getline(cin, p[0].proveedor);
  19.  
  20. cout << "FECHA DE CADUCIDAD(INTRODUCIR DIAMESAÑO): ";
  21. cin >> p[0].fechacaducidad;

Por supuesto una vez leas los datos del registro debes hacer algo útil con ellos.

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
problema al introducir datos!
Programación Visual Basic
[SMT] 1 1,369 Último mensaje 12 Mayo 2008, 05:44 am
por HaDeS, -
Introducir datos en programa « 1 2 »
Scripting
batus 12 7,891 Último mensaje 3 Junio 2009, 20:17 pm
por 0x0309
Introducir datos de un fichero en una tabla
Programación C/C++
HIPOCROFILO 4 3,659 Último mensaje 16 Octubre 2010, 15:29 pm
por do-while
Un fallo en determinadas webcams permite conectarse a ellas sin introducir...
Noticias
wolfbcn 0 1,984 Último mensaje 28 Enero 2012, 13:27 pm
por wolfbcn
Introducir datos de mi Base de Datos Mysql en TextBox's
Programación Visual Basic
Didy 0 1,722 Último mensaje 17 Febrero 2013, 19:03 pm
por Didy
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines