• Viernes 8 de Noviembre de 2024, 17:44

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - medieval

Páginas: [1]
1
C/C++ / Vector Dinámico De Estructuras
« en: Lunes 22 de Octubre de 2007, 04:32 »
Tengo definida esta estructura:

Código: Text
  1. typedef struct {
  2. char* nombre;
  3. char* cuit;
  4. char* cp;
  5. }Tipo_Cliente;
  6.  

Y la siguiente función:
Código: Text
  1.  
  2. Tipo_Cliente* alta_clientes(int cant_cli) //alta de cliente
  3. {
  4.     fflush(stdin);
  5.     int aux=TAM;
  6.     Tipo_Cliente* cli;
  7.  
  8.     if (cant_cli==0)
  9.     cli=(Tipo_Cliente*)malloc(sizeof(Tipo_Cliente)*aux); else
  10.     if (cant_cli==aux)
  11.     {
  12.         aux+=5;
  13.         cli=(Tipo_Cliente*)realloc(cli,sizeof(Tipo_Cliente)*aux);
  14.     }
  15.     printf("\n\nIngrese Nombre del cliente:\n   >");
  16.     fflush(stdin);
  17.     gets(cli[cant_cli].nombre);
  18.  
  19.     printf("\n\nIngrese CUIT del cliente:\n   >");
  20.     gets(cli[cant_cli].cuit);
  21.  
  22.     printf("\n\nIngrese CP del cliente:\n   >");
  23.     gets(cli[cant_cli].cp);
  24.  
  25.     printf("NO PASA!!");
  26.     return cli;
  27. }
  28.  

Quisiera saber por que no pasa nunca del último gets y se aborta el programa, si hay algún error en la función.
muchas gracias saludos!

Leonardo De Luca

2
C/C++ / Gets Vs Scanf
« en: Jueves 18 de Octubre de 2007, 06:57 »
Tengo una consulta sobre el siguiente codigo:

Código: Text
  1.  
  2. #include<stdio.h>
  3. #include<conio.h>
  4. #include<stdlib.h>
  5. #include<string.h>
  6. #define TAM 5
  7.  
  8.  
  9. typedef struct Tipo_Cliente{
  10.     char nombre[50];
  11.     char cuit[11];
  12.     char cp[11];
  13. };
  14.  
  15. int alta_opc()
  16. {
  17.  
  18.     int opc;
  19.     printf("ALTAS:\n------\n");
  20.     printf("1-Cliente\n");
  21.     printf("2-Articulo\n");
  22.     printf("3-Compra\n");
  23.     printf("4-Salir\n>");
  24.     scanf("%d",&opc);
  25.  
  26.     return opc;
  27. }
  28.  
  29.  
  30.  
  31. int main()
  32. {
  33.  
  34.     int cant_cli=0,cant_art=0,cant_com=0,aux;
  35.     aux=TAM; /*TAM es un define*/
  36.  
  37.     char cadena[20];
  38.    
  39.     Tipo_Cliente* clientes;
  40.    
  41.     int opc=alta_opc();
  42.     gets(cadena);   <--------------------- en este punto no me toma la funcion gets
  43.  
  44.  
  45.  
  46.  
  47.  
  48.                         printf ("ALTA DE CLIENTE\n");
  49.                         cant_cli++;
  50.                         clientes=(Tipo_Cliente*)malloc(sizeof(Tipo_Cliente)*aux);
  51.                         if (cant_cli==aux)
  52.                         {
  53.                             aux+=5;
  54.                              clientes=(Tipo_Cliente*)realloc(clientes,sizeof(Tipo_Cliente)*aux);
  55.                         }
  56.     return 0;
  57. }
  58.  


El problema es que luego de llamar a la funcion alta_opc, no me toma el gets, sin llamar a la funcion si funciona, y poniendo scanf tambien!

En que estoy fallando?? muchas gracias.

Páginas: [1]