Bueno aqui estuve intentando ingresar cadenas mayores a 20 y que solo guarde los primeros 20 como maximo pero no he podido hacerlo, me salta de linea por problemas en el buffer y no tengo idea de como resolverlo aqui el codigo
Datos de entrada: Nelson growwwwwwwwwwwwwwwwwwwwww
Datos de salida: Tremendo desbordamiento
Podria hacerlo con funciones propias pero el profesor no lo quiere asi, alguna sugerencia, desde ya gracias
Código (cpp) [Seleccionar]
#include <iostream>
#include <stdio.h> //Librerias
#include <stdlib.h> //del C :v
using namespace std;
const int MAX=20;
typedef char tcad[20];
typedef struct{
tcad nombre;
tcad apellido;
int edad;
int DNI;
}templeado;
void cargar(templeado &empleado);
void mostrar(templeado empleado);
int main()
{
templeado EMPLEADO;
cargar(EMPLEADO);
mostrar(EMPLEADO);
system("pause");
return 0;
}
void cargar(templeado &empleado)
{
cout << "Ingrese nombre : ";
cin.getline(empleado.nombre,MAX+1);
cout << "Ingrese apellido: ";
cin.getline(empleado.apellido,MAX+1);
cout << "Ingrese edad : ";
cin >> empleado.edad;
fflush(stdin);
cout << "Ingrese DNI : ";
cin >> empleado.DNI;
}
void mostrar(templeado empleado)
{
cout << "DATOS EMPLEADO" << endl;
cout << "Nombre : " << empleado.nombre << endl;
cout << "Apellido: " << empleado.apellido << endl;
cout << "Edad : " << empleado.edad << endl;
cout << "DNI : " << empleado.DNI << endl;
}
Datos de entrada: Nelson growwwwwwwwwwwwwwwwwwwwww
Datos de salida: Tremendo desbordamiento
Podria hacerlo con funciones propias pero el profesor no lo quiere asi, alguna sugerencia, desde ya gracias
