Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - MAFUS

#1451
El manejo de bits es muy poderoso.

Un aporte:
Cuándo hagas el desplazamiento de bits, cómo haces en b *= 2; escríbelo como b <<= 1. Los desplazamientos de bits son más rápidos que las multiplicaciones. Ídem para las divisiones.
#1452
Eso es porqué no has dimensionado la posición i de arregloNombres. Piensa que es solo un puntero y no puedes alojar nada en él.

Puedes resolver eso de dos formas:
Declaras dos dimensiones en arreglonombres:arregloNombres[10][80];
o dentro del for dimensionas cada posición de arregloNombres de forma dinámica con calloc. Si te decantas por la segunda opción recuerda liberar la memoria asignada por calloc cuándo dejes de usarla.

Dentro del for:
fscanf(lectura, "%s", nombre1);
arregloNombres[i] = calloc(strlen(nombre1) + 1, sizeof(char));
strncpy(arregloNombres[i], nombre1, strlen(nombre1));
#1453
Haces mal la asignación. Cuándo dices lo siguiente arregloNombres[i]=nombre1; lo que haces es copiar a la posición i de arregloNombres la dirección de memoria de nombre1. Todo el array tendrá así esa misma posición y cuando lo muestres con printf todas las posiciones del array te mostrarán el dato que contenga nombre1, que será el último dato que has guardado en él.

Solución:
Usa la función strncpy para realizar una copia por valor de la variable nombre. Acuérdate de que antes de eso debes dimensionar la posición i de arregloNombres para dar cabida al dato.
#1454
Si vas a buscar una fórmula matemática para conseguir los números, en base 10, que han escrito detrás de la coma te digo que conseguirías un hito. Para ello tienes dos vídeos que están relacionados.

Éste primero muestra como convertir un binario real a un decimal real:
https://www.youtube.com/watch?v=PtX_nWKMOxw

Y éste segundo muestra como convertir un real binario en su representación IEEE 754:
https://www.youtube.com/watch?v=VlX4OlKvzAk

Como puedes ver saber cuántos números decimales hay después de una coma en un real decimal es harto complicado.

Te será más fácil si lo haces en base a caracteres, como se ha mencionado anteriormente.
#1455
Lo malo de los reales en computación que siguen el IEEE 754, como en caso de C, C++, etc. es que cuándo se pasan a entero pierden precisión. El caso presentado por ivancea96 es uno de ellos. Así da como resultado 5 dígitos decimales.
#1456
Lo puedes hacer de otra forma: pilla el número como una cadena de caracteres. Usa las ventajas de trabajar con cadenas para conseguir saber cuántos caracteres hay detrás de la coma. Después transforma esa cadena en un double con strtod si necesitas el valor numérico.
#1459
No, home, lo que digo es que estás aprendiendo de un tutorial que no es de la tecnología que vas a utilizar.
#1460
Esto lo puedes hacer con ncurses, es una librería para manejar la consola.