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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


  Mostrar Mensajes
Páginas: 1 ... 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 [42] 43 44 45 46 47 48 49 50 51
411  Programación / Programación C/C++ / Re: Duda con punteros (error programa) en: 11 Agosto 2012, 17:00 pm
de nada!  ;D
412  Programación / Programación C/C++ / Re: Duda con punteros (error programa) en: 11 Agosto 2012, 16:57 pm
si que es cierto que no hay que reservarle memoria obligatoriamente a un puntero, pero si que hay que inicializarlo y decirle que apunte a algun sitio. hay 2 maneras para hacer esto:

1. reservar memoria como en el ejemplo anterior.
2. darle la direccion de alguna variable para que apunte a ella. como esa variable ya habia sido declarada, no tienes que declarar mas memoria. en el caso de strings, el mismo nombre de la cadena ya es un puntero al comienzo de la cadena. el ejemplo de antes hecho de esta manera podria ser asi:

Código
  1. #include <stdio.h>
  2.  
  3. #define MAX 20
  4.  
  5. int main()
  6. {
  7.    char *cadena, cadena2[MAX];
  8.  
  9.    cadena=cadena2;
  10.    fgets(cadena, MAX-1, stdin);
  11.    while(*cadena!='\0') {
  12.        putchar(*cadena);
  13.        cadena++;
  14.    }
  15.    return 0;
  16. }

edito: para poner el codigo con colores, selecciona las etiquetas GeSHi cuando escribas el mensaje. en este caso, serian asi [code = c][ / code] (sin ningun espacio en ellas, pero es que sino no aparece).
413  Programación / Programación C/C++ / Re: Duda con punteros (error programa) en: 11 Agosto 2012, 16:44 pm
el principal error yo diria que es que estas declarando un puntero a char pero en ningun momento reservas memoria para el. ademas, te faltan los {} en el while ya que hay mas de una instruccion dentro de el. luego si dices que el main devuelve un int, te falta el return 0 al final (0, o lo que tu quieras, pero algo que signifique que ha acabado bien).

Código
  1. #include <stdio.h>
  2. #include <stdlib.h> //malloc()
  3. #include <string.h> //memset()
  4.  
  5. #define MAX 20
  6.  
  7. int main()
  8. {
  9.    char *cadena;
  10.  
  11.    cadena=(char*)malloc(MAX*sizeof(char));
  12.    memset(cadena, '\0', sizeof(cadena)); //inicializas a NULL toda la cadena
  13.    fgets(cadena, MAX-1, stdin);
  14.    while(*cadena!='\0') {
  15.        putchar(*cadena);
  16.        cadena++;
  17.    }
  18.    return 0;
  19. }

edito: por cierto, acosumbrate a usar fgets() en lugar de gets(), ya que con esta ultima no puedes limitar el numero de caracteres introducidos por el usuario y te puede dar problemas con overflows y demas.
414  Sistemas Operativos / Mac OS X / Re: Problemas con GCC en mac en: 11 Agosto 2012, 16:21 pm
si ya lo tienes instalado lo unico que te haria falta es añadir ese directorio a la variable PATH del sistema. por si acaso, comprueba primero q no lo tienes. abre terminal y escribe:
Código
  1. echo $PATH
si en los resultados que te salen no tienes la carpeta /Developers/usr/bin entonces haz lo siguiente:

1. dirigite en la terminal a tu carpeta de usuario
2. Edita o crea el archivo profile:
Código
  1. nano .profile
3. inserta la siguiente linea:
Código
  1. export PATH=/Developers/usr/bin:$PATH
4. guarda el archivo y cierra la terminal. a partir de la siguiente que abras ya deberia hacerse efectivo el cambio, y deberias poder compilar desde la terminal. si esto no te funciona, prueba a reinstalar el xcode con el cd de instalacion (ya que diria que el solo deberia modificarte la variable PATH...).

espero q sirva, un saludo!
415  Programación / Programación C/C++ / Re: Duda gets() en: 10 Agosto 2012, 06:36 am
cuando usas scanf para leer un entero, esta funcion lee hasta el ultimo digito que encuentra y luego deja todo lo demas en el buffer de entrada. por ejemplo, si yo introdujera los siguientes caracteres cuando lo pidiera el scanf:

123fg45'\n' ('\n' ya que picas enter para introducir los datos y tambien se almacena en el bufer)

el scanf() leeria 123, y dejaria fg45'\n' en el buffer de entrada. esto es asi por propia definicion de la funcion scanf(). si quieres prueba este ejemplo y compruebalo por ti mismo:

Código
  1. #include <stdio.h>
  2. int main() {
  3. int a;
  4. char b[50];
  5. scanf("%d", &a);
  6.        //limpiarstdin();
  7. fgets(b, 49, stdin);
  8. printf("%d\n", a);
  9. printf("%s", b);
  10. return 0;
  11. }

sabiendo esto, puedes tambien comprobar que cuando usas gets(), esta lee en el bufer de entrada y ahi si que hay el caracter '\n', por lo que no te dara opcion a introducir nada y se recogera la basura que habia quedado en el bufer tras el scanf() hasta el caracter de nueva linea.

por cierto, esa funcion para eliminar la basura esta bien, aunque no limpiara del todo el bufer cuando haya una larga cola de basura (en tu caso, mayor a 80 caracteres). una alternativa es usar la siguiente funcion:

Código
  1. void limpiarstdin() {
  2. char a;
  3. while (a=getchar() != '\n');
  4. }

la cual si que limpiara del todo sea cual sea la longitud de basura.

un saludo!
416  Programación / Programación C/C++ / Re: [cagada]: gcc main.c -o main.c. posibilidad de recuperar codigo fuente?? en: 3 Agosto 2012, 06:29 am
avesudra, gracias por la idea, pero uso mac, y aunque tambien tenga lo de restaurar el sistema, la verdad es algo que no suelo hacer, es mas nunca en mi vida he hecho una copia de seguridad, algo que tendria que empezar a hacer por cierto.

durasno, pues la verdad he estado mirando por xcode ya que es el editor que uso, y no me ha parecido ver nada que guarde backups. mirare mejor, pero la verdad despues de esto he estado un rato pensando y se me ha ocurrido como mejorar el codigo de manera considerable, y para ello deberia modificar las bases del otro codigo asi que total... ya empiezo de 0 y lo hago mas ordenado. ademas, me servira como leccion para la proxima vez.

un saludo y gracias a los dos!
417  Programación / Programación C/C++ / Re: Ejercicio en C... en: 3 Agosto 2012, 06:24 am
hola, se me ha ocurrido una manera aunque no se si seria la mejor manera de hacerlo, aunque funcionar funcionaria:

1. pides que se ingrese el entero.
2. coges el entero y lo pasas a una cadena de caracteres con la funcion itoa (en string.h).
3. ahora cada caracter lo pasas a entero con la funcion atoi de la misma libreria y los sumas.
4. repites el proceso hasta que te quede 1 digito.

en caso que no puedas usar funciones externas, entonces seguro que habria un metodo mejor de hacerlo... pero siempre puedes hacerlas tu y aunque sea dar un poco de rodeo al menos funcionaria y ya tendrias algo.

un saludo!
418  Programación / Programación C/C++ / Re: [cagada]: gcc main.c -o main.c. posibilidad de recuperar codigo fuente?? en: 3 Agosto 2012, 03:12 am
ya me lo temia... sabia que no hay programas que te saquen el codigo fuente a partir del ejecutable, pero quizas se habia quedado de manera temporal el codigo en alguna carpeta escondida por ahi o quien sabe.

bueno no es un codigo grande, pero he estado hoy unas 6 horas para hacerlo... en fin, al menos la idea ya la tengo.

gracias igualmente!
419  Programación / Programación C/C++ / [cagada]: gcc main.c -o main.c. posibilidad de recuperar codigo fuente?? en: 3 Agosto 2012, 02:04 am
buenas a todos gente,

compilando a traves de la terminal, por ir con prisas y con el tabulador de los coj****, he puesto un: gcc main.c -o main.c, con lo cual automaticamente me he quedado sin el codigo fuente del programa. desde entonces no he tocado absolutamente nada, y mi pregunta es... hay alguna manera de recuperarlo? por favor decidme que si... xD
420  Foros Generales / Foro Libre / Re: ¿Cual es la diferencia entre neumaticos duros y blandos? en: 19 Julio 2012, 13:41 pm
neumaticos duros -> se gastan menos y se adhieren menos al suelo
neumaticos blandos -> se gastan mas y se adhieren mas, por lo tanto permite tomar a mayor velocidad las curvas por ejemplo sin que el coche derrape.

lo de la lluvia tiene que ver con el dibujo del neumatico, ya que este principalmente sirve para disipar el agua debajo de ellos y que no haya la pelicula de agua que pueda hacerte patinar.

diria que generalizando eso es asi, y lo de menos estabilidad pues depende de a que te refieras. los coches comunes que van por la calle suelen llevar neumaticos duros.

un saludo!
Páginas: 1 ... 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 [42] 43 44 45 46 47 48 49 50 51
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines