Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: clodan en 12 Octubre 2010, 17:36 PM

Título: Pregunta rapida y sencilla (para los que saben ¬¬)
Publicado por: clodan 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:

#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???
Título: Re: Pregunta rapida y sencilla (para los que saben ¬¬)
Publicado por: 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;
Título: Re: Pregunta rapida y sencilla (para los que saben ¬¬)
Publicado por: clodan en 13 Octubre 2010, 03:54 AM
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?
Título: Re: Pregunta rapida y sencilla (para los que saben ¬¬)
Publicado por: SirLanceCC en 29 Octubre 2010, 06:25 AM
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];            // [?|?|?]
Título: Re: Pregunta rapida y sencilla (para los que saben ¬¬)
Publicado por: Oblivi0n 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 )