|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - joaquinrg
1
« en: Martes 6 de Diciembre de 2005, 22:00 »
gracias, me imagino q esto es lo q decias:
fseek(fichero, 0, SEEK_END); /* Colocar el cursor al final del fichero */ tamano = ftell(fichero); /* Tamaño en bytes*/
2
« en: Martes 6 de Diciembre de 2005, 11:51 »
Hola, una preguntilla... existe alguna funcion estandard que calcule el tamaño en bytes de un fichero? Gracias
3
« en: Domingo 16 de Octubre de 2005, 12:59 »
Muchas gracias por las respuesta, la primera forma no se me habio ocurrido, y la segunda una cosa nueva que aprendo
4
« en: Sábado 15 de Octubre de 2005, 19:20 »
Bueno, me respondo a mi mismo, al final lo he conseguido de esta forma, aunque me imagino q habra mil formas mejores...
BYTE tabla[2] unsigned long int res; res=FuncionQueDevuelveUnsLongInt()
printf("Res: %lx\n", res); tabla[0]=res; tabla[1]=res/0xFF
5
« en: Sábado 15 de Octubre de 2005, 18:48 »
Hola, q tal? no se como hacer esto, a ver si me podeis ayudar. Tengo un unsigned long int, que son 4 bytes,no? y me gustaria meter cada byte en la casilla de una tabla BYTE tabla[4]. Como puedo acceder a cada byte del unsigned long int? lo unico que se me habia ocurrido es esto, pero no va: BYTE tabla[4] unsigned long int res; res=FuncionQueDevuelveUnsLongInt() printf("Res: %lx\n", res); tabla[0]=res; tabla[1]=*(&res+sizeof(BYTE)); ....
pero luego la unica casilla que tiene algun byte como lo imprime el printf es tabla[0], que contiene el ultimo byte de res. No se si me he explicado muy bien. Gracias de antemano
6
« en: Martes 28 de Junio de 2005, 23:52 »
es verda... deberia haber pensao mas... muchas gracias, no entendi bien el man de fseek
7
« en: Martes 28 de Junio de 2005, 22:20 »
Hola, q tal? llevo unas horas pensando esto y no se me ocurre nada, a ver si vosotros sabeis alguna forma. El tema es que tengo un archivo de texto, visible desde el bloc de notas, con la siguiente estructura:
javier, 24 manuel, 30 maria, 20 ... ana, 10
Me gustaria poder abrir el fichero desde el programa en c, y modificar por ejemplo la linea "maria, 20" y cambiarla por "maria, 45". Se puede? El problema es que necesito que el archvo se vea desde el bloc de notas, que no sea binario, entonces no puedo usar fseek y ftell para situarme en "maria, 20" y modificar la linea. Es posible escribir en un archivo en la linea q elijamos, sin q el archivo sea binario? Gracias
8
« en: Jueves 12 de Mayo de 2005, 19:21 »
hola, muchas gracias. Al final me dijo el profesor que iba a ser un poco complicado y que no lo hiciera, lo dejo pa cuando entonces pa cuando aprendamos mas...
9
« en: Sábado 7 de Mayo de 2005, 10:56 »
Hola, q tal? no si esto es posible, pero quedaria bien en el programa. Estamos haciendo un interprete de comandos para linux, donde el usuario mete los comandos y nosotros creamos procesos hijos con fork para ejecutarlos. Ahora estamos implementando un chat para comunicarnos a traves de mensajes entrelos diferentes interpretes. Hasta ahora cada interprete (en cada ventanita) escribe su mensaje y lo manda a la cola de mensajes, y cada 2 segundos se leen los mensajes de la cola en la misma ventana donde escribimos. Quedaria mejor si pudieramos abrir una nueva ventana donde unicamente se leyeran los mensajes de la cola que han ido mandando todos los interpretes, asi en cada interprete solo se ven los mensajes que cada uno escibe y en la ventana nueva se leen los de todos los interpretes. Esto se puede hacer? puedo crear un proceso con fork que se habra en una ventana nueva? he estado buscando en google y no he visto nada... a ver si alguien sabe... gracias
10
« en: Lunes 2 de Mayo de 2005, 16:11 »
gracias, es que hace mucho que no vengo por aqui y no me habia fijado
11
« en: Lunes 2 de Mayo de 2005, 14:33 »
Hola, q tal? me gustaria saber si hay alguna funcion en c que me perimita leer enteros por teclado que no sea scanf. Hasta ahora estoy utilizando :
char resputa[3]; int entero; fgets(respuesta, 3, stdin); entero=atoi(respuesta);
Pero no me funciona bien, xq cuando intrduzco un numero negativo atoi lo convierte al entero 0, y necesito distinguirl el 0 de los numero negativos...No puedo usar la funcion scanf, q seria la buena.... Hay otra forma? MUchas gracias
12
« en: Lunes 28 de Junio de 2004, 13:16 »
jaja, gracias... me parece q mejor cambio de compilador
13
« en: Domingo 27 de Junio de 2004, 21:50 »
Muchas gracias, pero si no se puede usar gotoxy en un compilador tan conocido como el visual c++ 6 tendra que haber alguna funcion parecida,no? Manda tela que tenga q cambiar de compilador de c para pasar un programa de pascal q usa la funcion gotoxy a uno de c
14
« en: Domingo 27 de Junio de 2004, 15:52 »
Hola, q tal? Necesto usar la funcion gotoxy en un programa. Pero en visual c++ 6 no me la reconoce. #include <conio.h> #include <stdio.h> #include <stdlib.h> int main() { gotoxy (5,5); printf ("hola"); }
error C2065: 'gotoxy' : undeclared identifier En el compilador Devcpp si la podia usar despues de leer un faq q vi en internet, pero ahora no he encontrado nada para usar las funciones de conio.h en visual c++, alguien sabe? Gracias
15
« en: Martes 8 de Junio de 2004, 15:11 »
muchas gracias, era lo q estaba buscando
16
« en: Lunes 7 de Junio de 2004, 22:38 »
hola, yo estoy en primero de informatica... y para el examen de dentro de un par de dias entra eso de eliminar la recursivida... ahora mismo no tengo ni idea de como va, si dentro de un par de dias me entero lo pondre, se que es un metodo general tambien, pero aun no me lo he estudiao ... es el ultmo tema...
como ejemplo nos pusieron el de las torres de hanoi... el profesor le quito la recursivida en 5 minutos, pero yo puedo estar toda la tarde y no conseguirlo
17
« en: Lunes 7 de Junio de 2004, 22:14 »
Hola, q tal? pues eso, he estao buscando alguna funcion que devuelva la fecha actual, conoceis alguna? Gracias
18
« en: Martes 20 de Abril de 2004, 22:41 »
Hola, buenas tarde. Una pregunta de c. Sabeis de alguna funcion que sirva para almacenar lo que imprime una función en una variable o en un archivo? Me explico, tengo una funcion que solo puede devolver ok o error, pero si devuelve error, antes de salir de la funcion esta imprime un mensaje de error por pantalla. Bien, pues ahora necesito que cuando la funcion devuelva error, poder almacenar el mensaje que se escribe en la pantalla en una variable. La funcion no la puedo cambiar, no le puedo pasar como parametro un puntero para q apunte al mensaje de error. Muchas gracias
19
« en: Martes 6 de Enero de 2004, 17:18 »
y el codigo del juego de las cadenas?? xD
20
« en: Lunes 5 de Enero de 2004, 16:14 »
jaja, esto que es telepascal?? yo necesito el codigo del juego de las cadenas, al ser posible para mañnana. amos q por lo menos lo podias intentar y poner el codigo pa q la gente te ayude en las partes q no funcionan
21
« en: Domingo 26 de Octubre de 2003, 12:48 »
Perdonar, ya lo consegui, me falto probar mas cosas. program Serpiente; uses crt; var a, b, i: integer; k: char; begin clrscr; a:= 20; b:= 20; gotoxy (a,b);writeln ('O'); for i:=0 to 5 do begin k:=readkey; repeat delay(8000); gotoxy (a,b); writeln (' '); if k='a' then begin a:=a-1; end; if k='s' then begin b:=b+1; end; if k='d' then begin a:=a+1; end; if k='w' then begin b:=b-1; end; gotoxy (a,b); writeln ('O'); until keypressed end; end.
22
« en: Domingo 26 de Octubre de 2003, 10:39 »
Hola, q tal? queria hacer una especie de serpinte : program Serpiente; uses crt; var a, b, i: integer; k: char; begin clrscr; a:= 20; b:= 20; gotoxy (a,b);writeln ('O'); k:=readkey; repeat delay(8000); gotoxy (a,b); writeln (' '); if k='a' then begin a:=a-1; end; if k='s' then begin b:=b+1; end; if k='d' then begin a:=a+1; end; if k='w' then begin b:=b-1; end; gotoxy (a,b); writeln ('O'); until keypressed end.
No se como hacer q al pulsar una tecla cambie de direccion. Xq si uso todo el rato readkey... tengo q pulsar cada vez antes de moverse. Y si uso la funcion keypressed, para hacer lo de arriba mientras no se pulsa ninguna tecla, despues habria que pulsar otra tecla para ver hacia q lado va ahora,no? Hay alguna forma de saber con la funcion keypressed la tecla q se ha pulsado? Gracias
23
« en: Domingo 5 de Octubre de 2003, 13:22 »
solucionado, en vez de poner sockaddr_in habia q poner solo sockaddr
24
« en: Domingo 5 de Octubre de 2003, 13:01 »
bueno, me confundio, no es el de chuidiang, pero ahora lo comparo con el suyo a ver si encuentro cual es el error
25
« en: Sábado 4 de Octubre de 2003, 13:57 »
Hola, q tal? despues de compilar el codigo de ejemplo del programa cliente/servidor del primero tutorial... me compila bien el cliente, pero el servidor no. Este es el codigo: #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <netdb.h> #include <sys/param.h> #include <errno.h> #define ERROR(s) {fprintf(stderr,"%d-",errno); perror(s); return(-1);} main (argc, argv) int argc; char *argv[]; { struct sockaddr_in sa; struct sockaddr_in caller; int s, msgsock, length; int retval; char buf[BUFSIZ], acknowledgement[BUFSIZ]; if ((s = socket(AF_INET,SOCK_STREAM,0)) < 0) ERROR ("socket"); /* name socket, register the socket */ sa.sin_family= AF_INET; sa.sin_addr.s_addr = INADDR_ANY; /* not choosy about who calls */ sa.sin_port= 22222; /* this is our port number */ if (bind(s,(struct sockaddr_in *)&sa,sizeof sa) < 0) ERROR ("bind"); /* bind address to socket */ /* get assigned port number and print it */ length = sizeof(sa); if (getsockname(s, (struct sockaddr_in *)&sa, &length) < 0) ERROR("getsockname"); /* listen for connections on a socket */ listen (s, 5); /* Use accept to wait for calls to the socket. Accept returns a new socket which is connected to the caller. msgsock will be a temporary (non-resuable) socket different from s */ if ((msgsock = accept(s,(struct sockaddr *)&caller,&length)) < 0) ERROR ("accept"); /* optional ack; demonstrates bidirectionality */ gethostname(buf, sizeof buf); /* write into the msgsock; the "s" is _only_for_rendezvous_ */ if ( write ( msgsock, acknowledgement, sizeof acknowledgement ) < 1 ) perror(argv[0]); /* read lines until the stream closes */ retval = 1; while(retval !=0 ) { bzero(buf, sizeof(buf)); if( (retval = read(msgsock, buf, sizeof(buf))) < 0) perror("reading stream message"); if (retval == 0) printf("ending connectionn"); else printf("read-->%sn", buf); } close(msgsock); close (s); exit (0); }
El error que me da es este: $ gcc server.c -o server server.c: In function `main': server.c:33: warning: passing arg 2 of `bind' from incompatible pointer type server.c:38: warning: passing arg 2 of `getsockname' from incompatible pointer t ype
Sabeis porque puede ser? Gracias
|
|
|