Código C++:
Ver original
#include<iostream> #include<stdio.h> #include <stdlib.h> #include <time.h> using namespace std; struct clientes { char nombre [50]; int numero_unidades; float precio; char estado; //p: pagado, m: moroso, a: atrasado }; void leer_clientes (clientes *listado) { cout<<"Introduzca el nombre del cliente: "; cin.getline(listado->nombre, 50); cout<<"Introduzca el numero de unidades: "; cin>>listado->numero_unidades; cout<<"Introduzca el precio: "; cin>>listado->precio; cout<<"Introduzca el estado (p: pagado, m: moroso, a: atrasado): "; cin>>listado->estado; } void escribe_clientes (clientes listado) { cout <<"Nombre del cliente: "<<listado.nombre<<endl; cout <<"Numero de unidades: "<<listado.numero_unidades<<endl; cout <<"Precio: "<<listado.precio<<" €"<<endl; cout <<"Estado: "; switch (listado.estado) { case 'p': cout <<"pagado"; break; case 'm': cout <<"moroso"; break; case 'a': cout <<"atrasado"; break; default: cout <<"Estado no válido"; break; } cout<<endl; } int main() { clientes listado [3]; for (int i=0; i<3; i++) { leer_clientes (&listado[i]); escribe_clientes (listado[i]); } return EXIT_SUCCESS; }
Compila bien. Lo ejecuto, me pide los datos del primero cliente listado[0], le meto los datos, me los escribe y me empieza a pedir los datos del segundo...
Aquí me aparece:
Introduzca el nombre del cliente: Introduzca el numero de unidades:
No puedo introducir el nombre del cliente, se salta el espacio... no sé si es un problema con el cin.getline.. quizás no se puede usar dos veces no sé..
Alguna idea? gracias
Pd: por qué no aparecen las palabras tildadas en la ejecución en ms dos? como por ejemplo "Estado no válido" que aparece "Estado no vßlido"