![Stress](http://static.forosdelweb.com/fdwtheme/images/smilies/stress.png)
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
int Getline(char s[], int lim)
{
int c, i;
for((i = 0); ((i < lim - 1) && (c = getchar()) != '\n' && c != '\0'); ++i)
s[i] = c;
if(c == '\n')
{
s[i] = c;
++i;
}
s[i] = '\0';
return i;
}
//http://espanol.answers.yahoo.com/question/index?qid=20060906085934AAIQD8I
enum Rangos{Almirante=1, ViceAlmirante, ContraAlmirante, CapitanNavo, CapitanFragata, CapitanCorbeta, TenienteNavo, TenienteFragata, TenienteCorbeta, MaestrePrimero, MaestreSegundo, MaestreTercero, Cabo, Soldado};
typedef struct{
enum Rangos Rango;
char Nombre [20];
char Apellido[20];
char Edad[2];
}MiembroFFAA;
typedef MiembroFFAA *Marin;
#define Estruct_escribir_NombreCampo_cadena(estructura,Cam po,Dato)(strcpy(estructura.Campo,Dato))
#define Estruct_leer_NombreCampo(estructura,campo)(estruct ura.campo)
#define Estruct_escribir_NombreCampo_numero(estructura,Cam po,valor)(estructura.Campo=valor)
#define Estruct_Escribir_NombreCampo_Cadena(Ptr,Campo,Dato )(strcpy(Ptr->Campo,Dato))
#define Estruct_Leer_NombreCampo(Ptr,Campo)(Ptr->Campo)
#define Estruct_Escribir_NombreCampo_Numero(Ptr,Campo,Valo r)(Ptr->Campo = Valor)
//#define Estruct_requerir_Campo(estructura,campo)(char Opcion[20]; printf ("%s", "Escriba el nombre"); scanf("%s", Opcion); Estruct_escribir_NombreCampo_cadena(estructura,cam po, Opcion);)
main()
{
unsigned int Indice = 0;
unsigned int ControlLectura = 0;
unsigned int IndiceLectura = 0;
char CadenaCapturada[40];
int EnteroCapturado;
char Usuario[30];
enum Rangos RangoAuxiliar;
char Continuar='s';
int Marin;
int *N;
printf("Ingrese el numero de marines: ");
scanf("%d", &Marin);
N = (int *)malloc(Marin*sizeof(int));
//http://todocporelinv.blogspot.com/2011/04/malloc-y-free-en-dev-c-por-elinv.html
printf ("%s\n", "================================================= =============");
printf ("%s\n", "=== ===");
printf ("%s\n", "=== TAXONOMIA: MIEMBROS DE LA FUERZA NAVAL ===");
printf ("%s\n", "=== ===");
printf ("%s\n\n\n", "================================================= =============");
printf("%s ","Ingrese Nombre de Usuario: ");
scanf("%s", Usuario);
fflush(stdin);
printf ("\n\n\n");
for(Indice= 0; Indice < 10 && Continuar=='s'; Indice++)
{
printf ("%s %s %d\n",Usuario," Ingrese los datos del Marin No. ",Indice);
printf("%s %d %s" ," => NOMBRE del Marin ",Indice, ": ");
Getline(CadenaCapturada,40);
Estruct_Escribir_NombreCampo_Cadena(Marin[Indice],Nombre,CadenaCapturada);
printf("%s %d %s" ," => APELLIDO del Marin ",Indice, ": ");
Getline(CadenaCapturada,40);
Estruct_Escribir_NombreCampo_Cadena(Marin[Indice],Apellido,CadenaCapturada);
printf("%s %d %s" ," => EDAD del Marin ",Indice, ": ");
Getline(CadenaCapturada,40);
Estruct_Escribir_NombreCampo_Cadena(Marin[Indice],Edad,CadenaCapturada);
printf("%s %d %s" ,"RANGO del Marin ",Indice, "Segun estas Opciones \n1.Almirante\n2.ViceAlmirante\n3.ContraAlmirante\ n4.CapitanNavo\n5.CapitanFragata\n6.CapitanCorbeta \n7.TenienteNavo\n8.TenienteFragata\n9.TenienteCor beta\n10.MaestrePrimero\n11.MaestreSegundo\n12.Mae streTercero\n14.Cabo\n15.Soldado: ");
scanf("%d",&RangoAuxiliar);
fflush(stdin);
ControlLectura++;
printf("%s ","Desea Continuar Ingresando Datos? (s/n) =>");
Continuar=getchar();
while(Continuar!='s' && Continuar!='n')Continuar=getchar();
fflush(stdin);
system ("cls");
}
printf("%s ","Desea Imprimir Los Datos Guardados? (s/n)") ;
Continuar=getchar();
while(Continuar!='s' && Continuar!='n')Continuar=getchar();
fflush(stdin);
system ("cls");
for(IndiceLectura=0;IndiceLectura<ControlLectura && Continuar=='s';IndiceLectura++){
printf("%s %d %s","Datos del Marin No. ",IndiceLectura,"\n");
printf("%s ", "NOMBRE:");
printf ("%s\n",Estruct_Leer_NombreCampo(Marin[IndiceLectura],Nombre));
printf("%s ", "APELLIDO:");
printf("%s\n" ,Estruct_Leer_NombreCampo(Marin[IndiceLectura],Apellido));
printf("%s ","EDAD:");
printf("%s\n",Estruct_Leer_NombreCampo(Marin[IndiceLectura],Edad));
printf("%s","RANGO No. ");
printf("%d\n",Estruct_Leer_NombreCampo(Marin[IndiceLectura],Rango));
printf("\n");
};
system("PAUSE");
}