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

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


  Mostrar Mensajes
Páginas: 1 ... 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 [60] 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 ... 161
591  Programación / Programación C/C++ / Re: Ayuda con ejercicio de ficheros C en: 14 Febrero 2018, 12:08 pm
No pongas '\0' cuando encuentres un espacio.
Lee línea a línea. Busca el primer carácter no espacio al principio desde el principio. Cuando lo encuentres toma ese puntero y lo usas como si fuera una cadena a escribir en el archivo.

Algo así:
Código
  1. #include <stdio.h>
  2.  
  3. char* eliminarEspaciosIniciales(char* cadena) {
  4.    while(*cadena == ' ') ++cadena;
  5.    return cadena;
  6. }
  7.  
  8. int main () {
  9.    char *cadena = "   Soy una cadena";
  10.  
  11.    puts("Original:");
  12.    printf("%s", cadena);
  13.  
  14.    puts("\n");
  15.  
  16.    puts("Sin espacios al incio:");
  17.    printf("%s", eliminarEspaciosIniciales(cadena));
  18.  
  19.    puts("\n");
  20. }

Solo debes cambiar la cadena estática por una conseguida a través del archivo y el printf por un fprintf al archivo nuevo.
592  Programación / Programación C/C++ / Re: Duda con el codigo en: 11 Febrero 2018, 20:50 pm
En verdad no está bien. La idea de que un método tenga tipo de regreso es que regrese un dato, por ejemplo: int suma() debería devolver el resultado de la suma. Por otra parte, y es cuestión de gustos, el que un método que realice un trabajo escriba por pantalla tampoco me gusta (a no ser por cuestión de depuración). Tratamiento de datos y representación deberían estar separados.
593  Programación / Programación C/C++ / Re: Base de datos en C++ en: 11 Febrero 2018, 00:34 am
Danos un poco más de detalle, a lo mejor con puro C++ es suficiente.
594  Programación / Programación C/C++ / Re: No se como hacer este ejercicio. en: 10 Febrero 2018, 14:04 pm
Es básicamente lo mismo: moverte por el array en busca del mayor valor y el menor, lo que en vez de guardar estos valores vas guardando la posición en el array de ese momento.
595  Programación / Programación C/C++ / Re: Cartón de Bingo en C. en: 8 Febrero 2018, 18:31 pm
Generas una línea con tu función de generar números aleatorios no repetidos.
5 3 7 1 10 8 2 6 4 9

Y ahora, con la misma función generas cuatro aleatorios más y los usas como índice:
Código:
línea[fila][aleatorio(i)] = 0;
Siendo i un iterador de 0 a 3, ambos inclusive, en un bucle.
596  Programación / Programación C/C++ / Re: Cartón de Bingo en C. en: 8 Febrero 2018, 12:22 pm
elige 4 posiciones aleatorias y conviertes en 0
597  Programación / Programación C/C++ / Re: Cartón de Bingo en C. en: 7 Febrero 2018, 22:30 pm
Para sacar números aleatorios no repetidos del 0 al 9 se me ha ocurrido la siguiente solución, basada en las variables estáticas de una función (conservan el mismo valor de llamada a llamada pero solo pueden accederse desde el interior de la función misma):

Código
  1. int aleatorio(int reinicio) {
  2.    // Esta función necesita stdlib.h para funcionar
  3.    static int array[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
  4.    int retval;
  5.    int i, z;
  6.  
  7.    if(reinicio == 0) { // Se ha optado por reiniciar a 0, así dando la posición 0 del array del llamador, la primera
  8.                        // se reiniciará para poder iterar normalmente. En las demás trabajar de forma normal
  9.        for(i=0; i<10; ++i)
  10.            array[i] = i;
  11.    }
  12.  
  13.    i = z = rand()%10; // Obtiene una posición del array interno
  14.    while((retval = array[i]) == -1) { // Si dicha posición ya ha sido usada (cambiada a 0)
  15.        ++i;                          // seguir buscando las siguientes hasta encontrar un valor distinto a 0.
  16.        if(i>9)                       // Por supuesto si superamos el nueve
  17.            i=0;                      // Hay que reiniciar a 0
  18.        if(i == z) // Si se ha dado una vuelta completa
  19.            break; // salir del bucle. retval valdrá -1, dando a entender que no hay más números a elegir.
  20.    }
  21.    array[i] = -1; // Una vez encontrado un número válido se marca como usado con el -1;
  22.  
  23.    return retval; // Retornamos el valor encontrado.
  24. }

El resto del programa se puede basar sobre esto:
Puedes crear una matriz de 10 x 10 donde las decenas y a cada fila usar dicho iterador para las decenas del número, de la misma forma a cada columna podrás usar la función (que devolverá 0 a 9) sumando 1 para que vayan de 1 a 10.
También puedes usar la función para, una vez rellena una fila con números aleatorios conseguir 4 posiciones que se llevarán a 0, para marcar un hueco.
Finalmente puedes usar la función para tomar 3 filas aleatorias de la matriz y crear el cartón.
Por ejemplo, la aplicación en la que he basado dicha función ofrece esta salida:
Código:
100  ---  099  092  ---  095  ---  093  094  ---
044  ---  ---  045  042  ---  046  049  ---  050
063  067  ---  ---  071  062  068  ---  065  066



Actualizado el código para eliminar un bucle eterno que se podría producir al pedir un número aleatorio cuando ya se hubieran usado todos.
598  Programación / Programación C/C++ / Re: ¿Por qué no usar Conio.H? en: 7 Febrero 2018, 19:57 pm
Tal como dice ivancea96.
Pero puedes replicar: bueno, hay muchas librerías de terceros que también se usan y no son parte del estándar.
La respuesta a eso es: conio.h viene integrada en el compilador de Borland y es el que se usa en centros educativos o en los libros de texto. La gente, al salir de ellos, usan compiladores diferentes al de Borland, o tienen que  trabajar en Linux y después se quejan que esas funciones no existen. O piden ayuda y vienen con esas funciones que los demás no tenemos y si queremos probar su código tenemos que hacer unos cuantos cambios.

Yo digo: usa todo lo que te permita el compilador pero si al cambiarlo encuentras que lo que sabes no te sirve, no te tires de los pelos y adecúate a la nueva situación. Si vas a pedir ayuda conviételo antes al estándar.
599  Programación / Programación C/C++ / Re: Copiar numeros de un vector a otro (iniciando con C++) en: 7 Febrero 2018, 07:05 am
Si el vector es un array, pus con memcpy.
Si el vector es el objeto de C++ pues con asignación =.
600  Programación / Programación C/C++ / Re: No se como hacer este ejercicio. en: 7 Febrero 2018, 07:00 am
Este tema se trató hace muy poco. Mira aquí:
https://foro.elhacker.net/programacion_cc/ejercicio_calcular_la_diferencia-t478628.0.html
Páginas: 1 ... 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 [60] 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 ... 161
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines