Ejemplo de Código
// Paso de parámetros de tipo estructura
#include <iostream>
#include <stdlib.h>
using namespace std;
// Definición de la estructura
struct Persona {
char nombre[30];
int edad;
} p1;
// Prototipos de funciones
void pedirDatos();
void mostrarDatos(Persona);
// Función principal
int main() {
pedirDatos(); // Solicitar datos del usuario
mostrarDatos(p1); // Mostrar los datos ingresados
system("pause"); // Pausar para ver el resultado
return 0;
}
// Funciones
void pedirDatos() {
cout << "Digite su nombre: ";
cin.ignore(); // Ignorar el carácter de nueva línea pendiente
cin.getline(p1.nombre, 30, '\n'); // Leer el nombre del usuario
cout << "Digite su edad: ";
cin >> p1.edad; // Leer la edad del usuario
}
void mostrarDatos(Persona p) {
cout << "\nSu nombre es: " << p.nombre << endl;
cout << "Su edad es: " << p.edad << endl;
}
Explicación del Código
Definición de la Estructura:
cpp
struct Persona {
char nombre[30];
int edad;
} p1;
- La estructura
Personatiene dos campos:nombrede tipochar(cadena de caracteres) yedadde tipoint. - Se declara una instancia de
Personallamadap1.
- La estructura
Prototipos de Funciones:
cpp
void pedirDatos();
void mostrarDatos(Persona);
pedirDatos()solicita al usuario que ingrese datos.mostrarDatos(Persona p)muestra los datos de una persona.
Función Principal (
main):
cpp
int main() {
pedirDatos();
mostrarDatos(p1);
system("pause");
return 0;
}
- Llama a
pedirDatos()para obtener los datos del usuario y luego amostrarDatos(p1)para mostrar los datos almacenados en la estructurap1. system("pause")se usa para pausar la ejecución y permitir al usuario ver el resultado en la consola.
- Llama a
Función
pedirDatos:
cpp
void pedirDatos() {
cout << "Digite su nombre: ";
cin.ignore(); // Limpiar el buffer de entrada
cin.getline(p1.nombre, 30, '\n');
cout << "Digite su edad: ";
cin >> p1.edad;
}
- Usa
cin.ignore()para ignorar el carácter de nueva línea pendiente en el buffer después de leer la entrada del nombre. cin.getline()se usa para leer una línea completa del nombre.cin >> p1.edadlee la edad del usuario.
- Usa
Función
mostrarDatos:
cpp
void mostrarDatos(Persona p) {
cout << "\nSu nombre es: " << p.nombre << endl;
cout << "Su edad es: " << p.edad << endl;
}
- Imprime el nombre y la edad de la persona pasada como argumento.
Ejemplo de Uso
Salida del programa:
Digite su nombre: Jesus Angel Martinez Mendoza
Digite su edad: 19
Su nombre es: Jesus Angel Martinez Mendoza
Su edad es: 19
Presione una tecla para continuar . . .
Consideraciones
- Paso de Parámetros por Valor: En este ejemplo, la estructura
Personase pasa a la funciónmostrarDatospor valor. Esto significa que se pasa una copia de la estructura. Los cambios realizados en la copia dentro de la función no afectan a la estructura original. - Uso de
cin.ignore(): Se utiliza para evitar problemas con la entrada de datos después de usarcinpara leer una cadena y luego un número entero.