|
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) 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 ) { FILE *f; int buffer; for(int i=0; i< registros; i++) { fread(buffer , fin , 1, f ); if (buffer==dato) //se puede hacer otra con strcpy para cadenas de caracteres { return i; //regresa lugar en el archivo en cual se encuentra } } return -1; //-1 si no existe }
y la de cantidad de registros int Cant_registros(const char* ruta, size_t tam) //size_t es lo que regresa sizeof (tipo de variable) { int tamanio; FILE *f; error_archivo("\t ERROR: no se pudo abrir el archivo - T x 78", &f); //si, soy tan vago que hasta cree una función con un simple if(f==NULL) y mensaje... return tamanio; }
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.
|
|
|
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: struct dato { int ID; int lock; };
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 c out es "sacar" (out en ingles) datos en pantallas, y el c in es para ingresar (in en ingles) datos, ej: 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: char opcion; bool loop=true; //las variables tipo bool, solo poseen dos posibles valores, 0 y 1 (true / false) while (loop) { cout<<"opciones de menu"<<endl; cout<<"eleccion: "; cin >> opcion; switch (opcion) { //cases del switch, acordate que es tipo char, iran entre comillas simples los case, ej: case '1' : //eso es para evitar errores mas adelante.... case '4': loop=false //corta el while y termina programa break; default: system("CLS"); //limpia pantalla, termina switch, encuentra la llave de cierra del while, y empiesa del principio break; } }
|
|
|
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/?2zlmgjaw92bllory muchas gracias a todos lo que invirtieron su tiempo si sale bien el game se lo dejo, junto con el codigo fuente xd
|
|
|
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 : Mix_OpenAudio(22050, AUDIO_S16, 2, 4096); 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: #include <iostream> #include <cstring> #include <cstdlib> #include <stdlib.h> #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 using namespace std; int main ( int argc, char** argv ) { //inicializamos el video y audio SDL_Init(SDL_INIT_AUDIO|SDL_INIT_VIDEO|SDL_INIT_AUDIO); //loop game bool GameLoop=true; //variable para eventos SDL_Event evento; //inicializo el modo grafico con un 500 x 200 SDL_Surface *screen; screen=SDL_SetVideoMode(500,800,32,SDL_HWSURFACE); SDL_WM_SetCaption("Ball Race", NULL); Mix_Music *musica; // Inicializamos SDL_mixer Mix_OpenAudio(22050, AUDIO_S16, 2, 4096); // Cargamos la musica musica = Mix_LoadMUS("turbo tunnel.mp3"); while (GameLoop)//loop game { SDL_Flip(screen); } return 0; }
bueno, desde ya muchas gracias.
|
|
|
|
|
|
|