elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Pregunta rapida y sencilla (para los que saben ¬¬)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Pregunta rapida y sencilla (para los que saben ¬¬)  (Leído 2,107 veces)
clodan

Desconectado Desconectado

Mensajes: 277



Ver Perfil
Pregunta rapida y sencilla (para los que saben ¬¬)
« en: 12 Octubre 2010, 17:36 pm »

Cuando yo inicializo un arreglo en base a una estructura, como se llama el espacio qe qeda dentro en vacio...

osea, yo necesito un codigo que genere automaticamente un codigo para un libro, y para eso necesito saber cual fue el ultimo que se hizo, pero no se como hacerlo ¬¬ a ver... muestro el codigo qe tengo hasta ahora:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. struct sis{
  5.       char cod;
  6.       char titu;
  7.       char aut;
  8.       char edit;
  9.       int ano;
  10.       char gene;
  11.       };
  12.  
  13. int agregar ();
  14. int ver();
  15.  
  16. char * prog="DATA.file";
  17. FILE * pf = NULL;
  18. struct sis base[3000];
  19. int main(int argc, char *argv[]){
  20.  int x;
  21.  pf = fopen( prog, "a+b");
  22.  if (pf==NULL){
  23.        printf("Error al Crear, Abrir o Modificar el Archivo");
  24.        while (getchar()!='\n');
  25.        return 0;
  26.        }
  27.  printf("DATA.file abierto.\n");
  28.  printf("Leyendo Datos de DATA.file. Por favor espere...\n\n");
  29.  while (!feof(pf)){
  30.        fread(&base, sizeof(base), 1, pf);
  31.        }
  32.  
  33.  
  34.  printf("....Sistema Interno....\n\n");
  35.  printf("Eliga la opcion que desea realizar:\n");
  36.  printf("1.Agregar Libro Nuevo\n");
  37.  printf("2.Ver Libros Actuales\n");
  38. scanf("%d",&x);
  39.  switch (x){
  40.         case 1:{
  41.              agregar ();
  42.              break;
  43.         }
  44.         case 2:{
  45.              ver ();
  46.              break;
  47.         }
  48.  }
  49.  
  50.  while (getchar()!='\n');
  51.  return 0;
  52. }
  53.  
  54. int agregar(){
  55.  
  56.    ACA ES DONDE TENGO QUE PONER EL CODIGO QUE LES DIGO
  57.    PARA QUE ME GENERE AUTOMATICAMENTE EL CODIGO DEL LIBRO :S
  58.  
  59.    printf("Ingrese el titulo del Libro\n");
  60.    return 0;
  61.    }
  62.  
  63. int ver(){
  64.  
  65.    return 0;
  66.    }

A lo que me refiero es que necesito saber qe valor se guarda temporalmente en una variable hasta que se le asigna algo.

Osea, como se le dice?? EOF???


« Última modificación: 12 Octubre 2010, 18:10 pm por clodan » En línea

SirLanceCC


Desconectado Desconectado

Mensajes: 1.093


Ver Perfil WWW
Re: Pregunta rapida y sencilla (para los que saben ¬¬)
« Respuesta #1 en: 13 Octubre 2010, 03:39 am »

El valor que tiene una variable antes de que le asignes algo es: lo que tenía esa posición de memoria justo antes de crear la variable, es decir basura, un misterio. No puedes saber.

En otros lenguajes se le asigna un valor a cada variable al declararla automáticamente (casi siempre 0, false, o NULL). En C/C++ eso no pasa. Siempre puedes inicializar tu variable al declararla.
Código
  1. int variable = 0;


En línea

clodan

Desconectado Desconectado

Mensajes: 277



Ver Perfil
Re: Pregunta rapida y sencilla (para los que saben ¬¬)
« Respuesta #2 en: 13 Octubre 2010, 03:54 am »

El valor que tiene una variable antes de que le asignes algo es: lo que tenía esa posición de memoria justo antes de crear la variable, es decir basura, un misterio. No puedes saber.

En otros lenguajes se le asigna un valor a cada variable al declararla automáticamente (casi siempre 0, false, o NULL). En C/C++ eso no pasa. Siempre puedes inicializar tu variable al declararla.
Código
  1. int variable = 0;

ahh listoo!! entonces puedo poner algo asi:

Código
  1. struct sis base[3000]={0};

entonces en los 3000 lugares, la primer variable, que es el codigo va a ser 0, no?
En línea

SirLanceCC


Desconectado Desconectado

Mensajes: 1.093


Ver Perfil WWW
Re: Pregunta rapida y sencilla (para los que saben ¬¬)
« Respuesta #3 en: 29 Octubre 2010, 06:25 am »

Sí, pero no es así exactamente como funciona.

Código
  1. int arreglo1[3] = {1,2,3};  // [1|2|3]
  2. int arreglo2[5] = {1,2,3};  // [1|2|3|0|0]
  3. int arreglo3[3] = {1};      // [1|0|0]
  4. int arreglo4[3] = {};       // [0|0|0]
  5. int arreglo5[3];            // [?|?|?]
  6.  
En línea

Oblivi0n


Desconectado Desconectado

Mensajes: 392

Odio las ranas.


Ver Perfil
Re: Pregunta rapida y sencilla (para los que saben ¬¬)
« Respuesta #4 en: 29 Octubre 2010, 21:45 pm »

en vez de "char cod" ponlo como int y vas incrementando/decrementando segun se vayan metiendo / sacando libros

(Creo que es lo que dices, sino es que me lié  :xD )
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines