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

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


  Mostrar Mensajes
Páginas: 1 [2]
11  Programación / Programación C/C++ / Re: [duda] Struc en C/C++, direcciones en memoria en: 6 Septiembre 2012, 22:26 pm
no me gusta revivir temas tan viejos, pero lo prometido es deuda...

es una función que busca en un archivo de struc de cualquier dimensión un dato int, y vos solo le pasas la ruta del archivo, a partir de cuantos byte empieza ese dato en la estructura, cuanto mide (es redundante por que es siempre 4, error mio) y la cantidad de registros que posee (para eso ya tengo otra función que mostrare mas abajo)

Código
  1.  
  2. int Buscar_int (const char* ruta,int principio /*luego de cuantos byte empieza el campo buscado en la estructura*/, int fin /* tamaño de int, si es redundante xd*/, int registros, int dato )
  3. {
  4.    FILE *f;
  5.    int buffer;
  6.  
  7.    f=fopen(ruta,"rb");
  8.  
  9.    for(int i=0; i< registros; i++)
  10.    {
  11.        fseek(f,pricipio,1);
  12.  
  13.        fread(buffer, fin, 1, f);
  14.  
  15.        if (buffer==dato) //se puede hacer otra con strcpy para cadenas de caracteres
  16.        {
  17.            fclose(f);
  18.            return i; //regresa lugar en el archivo en cual se encuentra
  19.        }
  20.    }
  21.  
  22.    fclose(f);
  23.    return -1; //-1 si no existe
  24. }
  25.  
  26.  

y la de cantidad de registros

Código
  1.  
  2. int Cant_registros(const char* ruta, size_t tam) //size_t es lo que regresa sizeof (tipo de variable)
  3. {
  4.    int tamanio;
  5.  
  6.    FILE *f;
  7.    f=fopen(ruta,"rb");
  8.    error_archivo("\t ERROR: no se pudo abrir el archivo - T x 78", &f);
  9.    //si, soy tan vago que hasta cree una función con un simple if(f==NULL) y mensaje...
  10.  
  11.    fseek(f,0,2);
  12.  
  13.    tamanio=(ftell(f)/tam);
  14.  
  15.    fclose(f);
  16.    return tamanio;
  17. }
  18.  

y ahora por que yo decía que eso era algo muy general ? por que en la facultad me mandaron un trabajo con 5 estructuras diferentes (y por ende archivos diferentes) y que en todas había que hacerle cosas similares y yo de vago cree esas funciones para cualquiera que sea la estructura.
12  Programación / Programación C/C++ / Re: [duda] Struc en C/C++, direcciones en memoria en: 31 Agosto 2012, 21:34 pm
genial, muchas gracias, me sacaste la duda :D
después mas tarde subiré acá la función en la que lo aplique como método practico por si alguien en algún futuro necesita un ejemplo de uso =P
huy que mal no note esas faltas de ortografía O_o

PD: viva la aritmética de punteros
13  Programación / Programación C/C++ / [duda] Struc en C/C++, direcciones en memoria en: 31 Agosto 2012, 21:09 pm
hola a todos, como andan ? , veran, estoy optimizando un codigo mio con funciones super genericas (que sean capases de resivir cualquier tipo de estruc y recorrer cada uno de sus campos) , el tema es que realizandolo me surgio una duda, sobre como son asignados los espacios en memoria de una estructura, por ejemplo la siguiente:

Código
  1.  
  2. struct dato
  3. {
  4.    int ID;
  5.    int lock;
  6. };
  7.  
  8.  

yo se que si le doy un sizeof (dato) , me dará 8 ( cada dato int ocupa 4 byte), mi pregunta es esta, supongamos que la estructura empieza en la direccion de memora 0x0001 , esa dirección de inicio, también corresponde a la de inicio de int ID ? y si le sumo 4 byte mas, osea, 0x0005 , esa seria la dirección de memoria de int lock ?

desde ya muchas gracias.
14  Programación / Programación C/C++ / Re: Ayuda soy un poco nobato en c++ en: 17 Agosto 2012, 03:16 am
bueno, acordate, el cout es "sacar" (out en ingles)  datos en pantallas, y el cin es para ingresar (in en ingles) datos, ej:

Código:
cout[b]<<[/b]"hola mundo"<<endl;
cin  [b]>>[/b] variable;

ahora hace un intento de leer tu propio codigo linea por linea, vas a ver que a la variable opcion que controla tu dato jamas le ingresas un valor con cin, como primer instancia, y como segunda instancia, si yo ingreso, por ejemplo, un 6, va al default, y termina el programa, ya que no quedan mas instrucciones. esto es la estructura de un menu:

Código
  1.  
  2. char opcion;
  3. bool loop=true; //las variables tipo bool, solo poseen dos posibles valores, 0 y 1 (true / false)
  4.  
  5. while (loop)
  6. {
  7. cout<<"opciones de menu"<<endl;
  8.  
  9. cout<<"eleccion: ";
  10.  
  11. cin >> opcion;
  12.  
  13.  switch (opcion)
  14.  {
  15. //cases del switch, acordate que es tipo char, iran entre comillas simples los case, ej: case '1' :
  16. //eso es para evitar errores mas adelante....
  17.  
  18. case '4':
  19. loop=false //corta el while y termina programa
  20. break;
  21.  
  22. default:
  23. system("CLS"); //limpia pantalla, termina switch, encuentra la llave de cierra del while, y empiesa del principio
  24. break;
  25.  }
  26.  
  27. }
  28.  
15  Programación / Programación C/C++ / Re: programa que determine si numero es perfecto en: 14 Agosto 2012, 00:13 am
si estas empezando, te doy un consejo cuando te encontras con un problema, antes de programar, pensa, "yo como ser humano,¿ como lo resuelvo ?" , una ves que ya lo tenes, solo estructuralo y dale un "paso a paso" , usando decisiones y repeticiones, y listo.
16  Programación / Programación C/C++ / Re: Problema al leer un archivo binario en C en: 13 Agosto 2012, 01:37 am
acordarte también, que si vas a sacar todos los datos del archivo de una, tenes que saber la cantidad de registros que contiene y almacenarlo en un vector de la estructura. osea, si yo tengo 5 registros del tipo de estructura "fulano" , al sacarlos de una debería hacer el sizeof de fulano y al siguiente parámetro ponerle 5 en vez de 1, y lo otro que te quería agregar, es que vos al archivo le podes poner la extensión que se te cante, ya sea .dat o .fulanoestuboaquiescribiendoextenciones
17  Programación / Programación C/C++ / Re: pequeña ayuda con SDL_mixter en: 4 Agosto 2012, 05:43 am
si, es que en el code blocks hay que ir a la parte de configuración del compilación, agregar las librerías en la solapa de linkeado, y alado en el otro panel escribir:

-L/usr/lib -lSDL -lSDL_mixer -lSDL_net -lpthread -I/usr/include/SDL -D_REENTRANT

en este caso, lo resaltado es lo importante:
fijense que alado del nombre de las librerias: SDL , SDL_mixer y SDL_net hay un -l , eso significa que cuando compile debe tomar esas librerias de la carpeta de /usr/lib en el caso de librerías (no se si estáticas o dinámicas, ya que cambia en cada caso, osea si las le das el #include con "" o con < > si mal no me equivoco)

lo saque del siguiente libro en la parte de apendice, uno altamente recomendable y que lo explica mejor que yo en la parte de apendice:

http://www.mediafire.com/view/?2zlmgjaw92bllor

y muchas gracias a todos lo que invirtieron su tiempo :D

si sale bien el game se lo dejo, junto con el codigo fuente xd
18  Programación / Programación C/C++ / Re: pequeña ayuda con SDL_mixter en: 4 Agosto 2012, 00:02 am
ya esta, ya lo solucione , le agregue unos comandos para que me linkee bien al compilar y lo toma bien, es que era rraro que compila bien antes sin tener que hacer eso =/
19  Programación / Programación C/C++ / Re: pequeña ayuda con SDL_mixter en: 2 Agosto 2012, 23:13 pm
no, linkeada la libreria creo que esta bien, por por ejemplo, cuando declaro
Código:
Mix_Music *musica;
que pertenece a esa librería, no salta error. pero bueno, seguiré investigando gracias.
20  Programación / Programación C/C++ / pequeña ayuda con SDL_mixter en: 2 Agosto 2012, 04:20 am
hola, como andan, espero que bien.
verán, ando estudiando por mi cuenta lo que es la librería SDL y la programación con respecto a video juegos, usando base linux ( ubuntu) y de IDE Code::blocks ,
el problema es que, cuando realizo una función como :

Código
  1. Mix_OpenAudio(22050, AUDIO_S16, 2, 4096);
  2. Mix_LoadMUS("turbo tunnel.mp3");  

me salta error de compilación :

undefined reference to 'Mix_OpenAudio'
undefined reference to 'Mix_LoadMUS'



no se si sera por que instale la biblioteca del SDL_mixter por separado de las demás...

bueno, les dejo el codigo completo:

Código
  1.  
  2. #include <iostream>
  3. #include <cstring>
  4.  
  5. #include <cstdlib>
  6. #include <stdlib.h>
  7.  
  8. #include <SDL.h> //edite en los include iniciales de mi SDL.h para que incluya a la SDL_mixter que no estaba ya que la agregue mas tarde
  9.  
  10. using namespace std;
  11.  
  12.  
  13.  
  14. int main ( int argc, char** argv )
  15. {
  16.    //inicializamos el video y audio
  17.    SDL_Init(SDL_INIT_AUDIO|SDL_INIT_VIDEO|SDL_INIT_AUDIO);
  18.  
  19.    //loop game
  20.    bool GameLoop=true;
  21.  
  22.    //variable para eventos
  23.    SDL_Event evento;
  24.  
  25.    //inicializo el modo grafico con un 500 x 200
  26.    SDL_Surface *screen;
  27.    screen=SDL_SetVideoMode(500,800,32,SDL_HWSURFACE);
  28.    SDL_WM_SetCaption("Ball Race", NULL);
  29.  
  30.    Mix_Music *musica;
  31.   // Inicializamos SDL_mixer
  32.    Mix_OpenAudio(22050, AUDIO_S16, 2, 4096);
  33.    // Cargamos la musica
  34.    musica = Mix_LoadMUS("turbo tunnel.mp3");
  35.  
  36.    while (GameLoop)//loop game
  37.    {
  38.  
  39.  
  40.        SDL_Flip(screen);
  41.    }
  42.  
  43.    return 0;
  44. }
  45.  

bueno, desde ya muchas gracias.
Páginas: 1 [2]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines