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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Mensajes
Páginas: [1] 2 3 4 5
1  Programación / Programación C/C++ / Obtener más precisión que long double en C?¿? en: 3 Febrero 2012, 20:32 pm
Buenas, ¿alguien me dice si se puede obtener más precisión que la de long double en C? Lo pregunto por que estoy haciendo un programa que me calcule pi (sin un número de cifras definido, hasta que lo cierre) y ¡long double se queda corto para pi!  :xD
2  Programación / Programación C/C++ / Re: Duda stdarg.h en C en: 2 Febrero 2012, 16:30 pm
Ok! ya lo consegui! Gracias!!! Y eso.... soy demasiado impaciente, quiero aprender mucho, pero tengo poco tiempo xD. Gracias de nuevo.
3  Programación / Programación C/C++ / Re: Duda stdarg.h en C en: 1 Febrero 2012, 18:17 pm
Muchas gracias. Pero como puedo pasar caracteres en vez de números, por ejemplo:
Código
  1. fn('a','b','c');
?¿?¿
4  Programación / Programación C/C++ / Re: Duda stdarg.h en C en: 31 Enero 2012, 20:56 pm
Hola, lo que quiero hacer es un mini kernel. Me funciona y todo (al nivel que escribe algo y punto). En la función printf necesito que me recoja, el texto, el color, y las variables. Por ejemplo, la llamaría así:
Código
  1. int c=32; printf("Intento patético de kernel.\nLa variable c es %d\n","red",c);
Ya tengo el printf pero o solo consigo elegir color, o solo coger variables. Cuando intento los dos a la vez, ERROR.
Si sirve de algo, este es mi stdarg.h :
Código
  1. #ifndef _STDARG_H
  2. #define _STDARG_H
  3.  
  4. typedef char *va_list;
  5. #define __va_rounded_size(TYPE)  \
  6.   (((sizeof (TYPE) + sizeof (int) - 1) / sizeof (int)) * sizeof (int))
  7.  
  8. #ifndef __sparc__
  9. #define va_start(AP, LASTARG) \
  10.  (AP = ((char *) &(LASTARG) + __va_rounded_size (LASTARG)))
  11. #else
  12. #define va_start(AP, LASTARG) \
  13.  (__builtin_saveregs (), \
  14.   AP = ((char *) &(LASTARG) + __va_rounded_size (LASTARG)))
  15. #endif
  16.  
  17. void va_end (va_list);
  18. #define va_end(AP)
  19.  
  20. #define va_arg(AP, TYPE) \
  21.  (AP += __va_rounded_size (TYPE), \
  22.   *((TYPE *) (AP - __va_rounded_size (TYPE))))
  23.  
  24. #endif /* _STDARG_H */
  25.  
Y el printf tendría esta forma (solo es parte):
Código
  1. int printf(char *text, char *color, ...)
  2.  
Ah y me equivoqué antes y puse "main" en vez de "printf", lo siento, pero ya dije que no tenía el código y me lié escribiendolo.
5  Programación / Programación C/C++ / Duda stdarg.h en C en: 31 Enero 2012, 16:32 pm
Buenas (de nuevo). Estoy intentando que un programa me coja unos argumentos fijos y luego, me pueda recoger un número indefinido de argumentos. He oído que sería:
Código
  1. #include <stdarg.h>
  2. int printf(char *text, char *color, ...) //Esto es lo que he oído.
  3. {
  4. /*
  5. Aquí iría lo que no tengo ni idea. Si no pongo la de color consigo que me  coja la variable
  6. texto, pero las "no obligatorias" me las deforma. Son unos int. Por ejemplo, pongo 32 y
  7. me sale 1034..., en fín, que se equivoca. Si pongo la de color... ni se ejecuta.
  8. */
  9. return 0;
  10. }
  11.  
Siento no ponerles el código completo, pero no tengo acceso a él en este momento.
6  Programación / Programación C/C++ / Duda sobre biblioteca estandar de C en: 16 Enero 2012, 16:22 pm
Buenas, me podrían decir si se puede usar la biblioteca estándar de C fuera del sistema operativo. No se si me explico bien. Por ejemplo, utilizar printf() cuando creas un nuevo SO, pudiendo utilizar stdio.h y no tener que crear tus librerías, que la función printf() se pueda usar fuera del SO, sin cargar linux, o windows o lo que uses. Evidentemente no me propongo crear ningún SO, es simplemente por la curiosidad, que me está matando.
Perdonad mi ignorancia, pero tengo 14 años y no se mucho de C y menos de sistemas operativos.
7  Programación / Programación C/C++ / Re: Probelma en C. Ayuda!!! en: 15 Enero 2012, 18:26 pm
Muchísimas gracias de nuevo.
8  Programación / Programación C/C++ / Re: Probelma en C. Ayuda!!! en: 15 Enero 2012, 16:25 pm
Ya lo hice y me salió lo siguiente: (este es otro ejemplo, pero el error al utilizar atof es el mismo que con el código completo, lo hago para ahorrar espacio)
Código
  1. #include <stdio.h>
  2. #include <string.h>
  3. main(int argc, char *argv[])
  4. {
  5. double n1, n2, n3;
  6. n1=atof(argv[1]);
  7. n2=atof(argv[2]);
  8. n3=atof(argv[3]);
  9. printf("La variable n1= %f\nLa variable n2= %f\nLa variable n3= %f\n", n1, n2, n3 );
  10. return 0;
  11. }
  12.  
Salida:
Código:

$ ./pam 3 4 5
La variable n1= 524288.000000
La variable n2= 0.000000
La variable n3= 262144.000000
$
Como ven, me cambia los números.
9  Programación / Programación C/C++ / Re: Probelma en C. Ayuda!!! en: 15 Enero 2012, 15:45 pm
Siento salir ahora con otra duda, pero, si quiero sumar dos decimales, y que el resultado se decimal que hago?¿ Esto es lo que llevo:
Código
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. main(int argc, char *argv[])
  5. {
  6. float n1, n2, resultado;
  7. n1=atoi(argv[1]);
  8. n2=atoi(argv[2]);
  9. resultado = n1 + n2;
  10. printf("El resultado de sumar %f y %f es: %f\n", n1, n2, resultado);
  11. salir();
  12. }
  13.  
  14. int salir()
  15. {
  16. return 0;
  17. }
  18.  
El resultado es esta:
Código:
$ ./pam 3.5 + 3.4
El resultado de sumar 3.000000 y 3.000000 es: 6.000000
$
Cuando lo que espero es que me salga es:
Código:
$ ./pam 3.5 + 3.4
El resultado de sumar 3.500000 y 3.400000 es: 6.900000
$
10  Programación / Programación C/C++ / Re: Probelma en C. Ayuda!!! en: 14 Enero 2012, 19:53 pm
No me lo tomo a mal para nada, tranquilo. Gracias por la ayuda!
Páginas: [1] 2 3 4 5
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines