Pregunta rapida y sencilla (para los que saben ¬¬)

Iniciado por clodan, 12 Octubre 2010, 17:36 PM

0 Miembros y 1 Visitante están viendo este tema.

clodan

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:

#include <stdio.h>
#include <stdlib.h>

struct sis{
      char cod;
      char titu;
      char aut;
      char edit;
      int ano;
      char gene;
      };

int agregar ();
int ver();

char * prog="DATA.file";
FILE * pf = NULL;
struct sis base[3000];
int main(int argc, char *argv[]){
 int x;
 pf = fopen( prog, "a+b");
 if (pf==NULL){
       printf("Error al Crear, Abrir o Modificar el Archivo");
       while (getchar()!='\n');
       return 0;
       }
 printf("DATA.file abierto.\n");
 printf("Leyendo Datos de DATA.file. Por favor espere...\n\n");
 while (!feof(pf)){
       fread(&base, sizeof(base), 1, pf);
       }
 
 
 printf("....Sistema Interno....\n\n");
 printf("Eliga la opcion que desea realizar:\n");
 printf("1.Agregar Libro Nuevo\n");
 printf("2.Ver Libros Actuales\n");
scanf("%d",&x);
 switch (x){
        case 1:{
             agregar ();
             break;
        }
        case 2:{
             ver ();
             break;
        }
 }

 while (getchar()!='\n');
 return 0;
}

int agregar(){
   
   ACA ES DONDE TENGO QUE PONER EL CODIGO QUE LES DIGO
   PARA QUE ME GENERE AUTOMATICAMENTE EL CODIGO DEL LIBRO :S
   
   printf("Ingrese el titulo del Libro\n");
   return 0;
   }

int ver(){
   
   return 0;
   }


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???

SirLanceCC

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.
int variable = 0;

clodan

Cita de: SirLanceCC 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.
int variable = 0;

ahh listoo!! entonces puedo poner algo asi:

struct sis base[3000]={0};

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

SirLanceCC

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

Código (cpp) [Seleccionar]

int arreglo1[3] = {1,2,3};  // [1|2|3]
int arreglo2[5] = {1,2,3};  // [1|2|3|0|0]
int arreglo3[3] = {1};      // [1|0|0]
int arreglo4[3] = {};       // [0|0|0]
int arreglo5[3];            // [?|?|?]

Oblivi0n

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 )