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


 


Tema destacado: Cifrar documentos-carpetas con GnuPG en Linux y Windows


  Mostrar Mensajes
Páginas: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 84
1  Programación / Programación C/C++ / [APORTE] conio.h mínimo para Llinux en: Hoy a las 11:06
Es frecuente en este foro encontrarse con gente que sigue trabajando con TurboC de Borland con la líbrería conio.h y normalmente la usan para dos o tres funciones: gotoxy, getch y getche. Para los que trabajamos con Linux nos da un poco de pereza ir editando todas esas líneas para hacer el código ejecutable. Pues bien, a raíz de eso he decidido hacerme una pequeña conio para quitarme de encima susodicho trabajo y ahora quiero compartirla con vosotros.

conio.h
Código
  1. #ifndef CONIO_PARA_LINUX
  2. #define CONIO_PARA_LINUX
  3.  
  4. #include <stdio.h>
  5. #include <termios.h>
  6.  
  7. void gotoxy(int x, int y) {
  8.    printf("\33[%d;%df", y, x);
  9. }
  10.  
  11. static char getch_interno(int eco) {
  12.    char c;
  13.    struct termios old, new;
  14.  
  15.    tcgetattr(0, &old);
  16.    new = old;
  17.    new.c_lflag &= ~ICANON;
  18.    new.c_lflag &= eco ? ECHO : ~ECHO;
  19.    tcsetattr(0, TCSANOW, &new);
  20.    c = getchar();
  21.    tcsetattr(0, TCSANOW, &old);
  22.  
  23.    return c;
  24. }
  25.  
  26. char getch() {
  27.    return getch_interno(0);
  28. }
  29.  
  30. char getche() {
  31.    return getch_interno(1);
  32. }
  33.  
  34. #endif
2  Programación / Programación C/C++ / Re: Ayuda con este problema "[Warning] built-in function 'y0' declared as non-functi en: Hoy a las 10:32
Lo que he visto. Comprimo el código para poner las sentencias que generan el error cerca:
Código:
int laberint[21][66];
x0=34;
y_0=8;
laberint[x0][y_0]=0;

Obviamente laberint es escrito muy lejos de su límite.
3  Programación / Programación C/C++ / Re: Ejercicio basico con c++ (Ayuda con el prinft) en: Hoy a las 03:58
Para colombia es es_CO

http://www.localeplanet.com/icu/es-CO/
4  Programación / Programación C/C++ / Re: [URGENTE POR FAVOR] Problema compilación ejercicio funciones con matrices en: Hoy a las 02:10
Hay bastantes cosas mal en tu código. Un array del tipo local, eso es array[dimension], no puede crearse a partir de una variable; es decir, dimensión debe ser una contante. Puede que te funcione pero eso es dependiente el compilador, en otro puede que no funcione.

Hazlo así:
Código:
int **m1 = malloc(sizeof(int*) * n);
for(int i=0; i<n; i++){
        m1[i] = malloc(sizeof(int) * n);
for(int j=0; j<n; j++){
            printf("[ %i , %i ] <- ", i, j);
scanf("%d", &m1[i][j]);
}
}

Cuando una función recibe un array multidimensional deben especificarse todas las dimensiones menos una, la que marca cuántos elementos de ese array van a existir. Esto es así porqué C necesita saber los límites de las dimensiones del dato. Por ejemplo, sea una función que reciba una tabla 5x5 de enteros su prototipo sería así:

Código:
void funcion(int tabla[][5], int n_elementos);
Se pasa el número de elementos, n_elementos, porque este puede cambiar llamada a llamada pero las dimensiones del array no. En este caso la función no devuelve nada.
5  Programación / Programación C/C++ / Re: Ejercicio basico con c++ (Ayuda con el prinft) en: Ayer a las 23:48
Para el 1: la coma decimal (o punto decimal) también se considera parte del número de dígitos cuando marcas el número mínimo de caracteres a usar. La cadena de control por tanto será
Código:
"%06.3f"
Por cierto, para hacer una división con decimales basta que uno de los dos números sea marcado cómo decimal con un punto decimal. Así:
Código:
float uno = 1/3.;
;
Cuando C encuentra una operación matemática con dos números de diferente naturaleza siempre promociona los de menor rango al mismo tipo del mayor rango de la operación.

Para el 2: el manual dice
Citar
For some numeric conversions a radix character ("decimal point") or thousands' grouping character is used. The actual character used depends on the LC_NUMERIC part of the locale. The POSIX locale uses '.' as radix character, and does not have a grouping character. Thus,

printf("%'.2f", 1234567.89);
results in "1234567.89" in the POSIX locale, in "1234567,89" in the nl_NL locale, and in "1.234.567,89" in the da_DK locale.

Como puedes ver te marca que el apostrofe es el signo a usar para que printf imprima el separador de millares y, además, dice que depende de la configuración local.

Otra búsqueda por internet, no muy larga, indica como cambiar el comportamiento de printf si de normal no marca los millares. Para ahorrarte el trabajo te lo pongo aquí. Antes de usar printf debes cambiar la configuración local de esta forma:
Código:
setlocale(LC_NUMERIC, "");
6  Programación / Programación C/C++ / Re: Ayuda errores en codigo en lenguaje c. en: Ayer a las 18:13
Antes de empezar a resolver tu duda hay que resolver un problema muy grave:
Creas un array a partir de una variable. Esto es un error pues depende del compilador que funcione o no. Debes usar la familia malloc para crear un array así. Pero más grave aún es que el primer array generado puede tener una dimensión negativa y eso sí es un error muy grave; haces la comprobación  de generarlo después
7  Programación / Programación C/C++ / Re: Funcion de modificar archivos copia el valor de variable a todos los registros en: Ayer a las 18:05
Para qué guardas lo que has leído cuando no coincide la clave? Lo duplicarás.
Para sobreescribir un registro, espero que todos los campos sean de longitud fija, debes volver atrás el puntero del archivo tantos bytes como ocupa el registro y entonces reescribir.
8  Programación / Programación C/C++ / Re: Ejercicio basico con c++ (Ayuda con el prinft) en: Ayer a las 13:52
Solo está el enunciado del tres. ¿qué dicen los otros puntos?
9  Programación / Programación C/C++ / Re: Ejercicio basico con c++ (Ayuda con el prinft) en: 27 Mayo 2017, 23:26
Normalmente los números ocupan el espacio de sus propios dígitos, pero el ejercicio te propone que escribas tres números que, a pesar de ser de dos dígitos cada uno ocupen 5 espacios para caracteres. Esto lo tienes en el manual.
10  Programación / Programación C/C++ / Re: Ejercicio basico con c++ (Ayuda con el prinft) en: 27 Mayo 2017, 09:13
¿Qué tal vas de inglés?
Aquí el manual de la família printf

Trae todas las respuestas a lo que pides.
Páginas: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 84
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines