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

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


  Mostrar Mensajes
Páginas: 1 ... 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 [73] 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 ... 102
721  Programación / Programación C/C++ / Re: Cambiar colores en la terminal en: 15 Marzo 2019, 21:12 pm
Usando el comando <system("color XX")> puedes cambiar el color de la letra y el de fondo.
Me parece que no tiene la opción de cambiar la letra a negrita, pero igual existe alguna librería externa más completa para trabajar con colores. Suerte :-X
722  Programación / Programación C/C++ / Re: ayuda con un programa de ficheros en: 13 Marzo 2019, 16:36 pm
Lo primero, el código de tu programa colócalo entre etiquetas de código GeSHi (están encima del cuadro de texto cuando escribes o modificas un mensaje)...

Y creo que la forma más fácil sería sin usar <strtok()>. Tienes en <arma> el nombre que quieres buscar, y en <buffer> una línea que parece que empieza por el nombre del arma, seguido de "/" y de sus características.
Entonces puedes usar <strncmp()> para comparar <arma> con los <n> primeros caracteres de <buffer> (siendo n el tamaño de la palabra <arma>. Cuando coincida, muestra el <buffer> y se mostrará la línea completa.

Suerte :-X
723  Programación / Programación C/C++ / Re: Quisiera saber que error hay en mi código en: 12 Marzo 2019, 09:03 am
Pues a mí sí me funciona aunque la salida es un poco fea (todo seguido)... Esta es la salida que he tenido yo:
Código:
¿Que numero deseas buscar en el arreglo?: 3
Lo siento, tu numero no se encuentra en el arreglo

¿Que numero deseas buscar en el arreglo?: 10
Mediante la Busqueda lineal, tu numero se encuentra en la posicion 2, con 3 comparaciones hechas.Mediante la Busqueda binaria, tu numero se encuentra en la posicion 2

También te digo que ese código podría mejorarse bastante. Para empezar no sé si estás compilando en C o en C++ ya que tienes una mezcla ahí que no puede ser buena... Si estás compilando en C te estará dando de error la librería <iostream> que es de C++, si compilas en C++, funcionar funciona, pero <stdio.h> y <stdbool.h> son de C...

La búsqueda lineal la has complicado más de lo necesario, si al encontrar un valor haces un <return> no hace falta que modifiques la variable <x>, va a funcionar igual... Además los nombres de variables son bastante insignificantes <a, k, jeje, ...>... Mejor nombres como <array, elemento_buscado, longitud_array> que te permiten entender cómo funciona simplemente leyendo.

Tienes dos funciones distintas que hacen exactamente lo mismo, primero usas una y luego otra... (es la búsqueda lineal por si no sabes a cual me refiero).

Si vas a poner dos <return> en el <main>, uno al final del <if> y otro al final del <else>, pon sólo uno al final, fuera de ambos y te ahorras los dos anteriores...

Y ya un par de saltos de línea en las salidas y queda perfecto. Suerte :-X
724  Programación / Programación C/C++ / Re: Que significa esta sintaxis? en: 11 Marzo 2019, 10:14 am
Te pongo otro caso de ejemplo para que lo veas en otra situación, pero la respuesta de srWhiteSkull es correcta tambien:
Código
  1. // uso una struct para que los miembros sean publicos, pero tambien sirve usando clases
  2. struct MyStruct{
  3.    double a;
  4.    double b;
  5. };
  6.  
  7. class MyClass{
  8.    MyStruct private_struct;
  9.  
  10.    public:
  11.        MyStruct getStruct()const{
  12.            return this->private_struct;
  13.        }
  14. };
  15.  
  16. int main(){
  17.    MyClass *p_class = new MyClass;
  18.    p_class->private_struct.a = 10;
  19.    // ...
  20.    cout << p_class->getStruct().a << endl; // salida: 10
  21. }

Si por ejemplo la <struct> tuviera una función que fuese <getA()> también puedes usar eso y hacer:
Código
  1. p_class->getStruct().getA();

Como ves sirve para "concatenar". Puedes ir analizando de izquierda a derecha cada paso. Tienes un puntero a <MyClass> que al llamar a <getStruct()> devolvería la <private_struct> que tiene la clase como miembro. Pero a esa <struct> le aplicas el <.a> para que devuelva sólo el valor a de toda la <struct>.
Esto también te permite concatenar más de dos funciones o miembros. Si trabajas con POO te encontrarás esto en códigos que usan varias clases y estas están relacionadas. Suerte :-X
725  Programación / Programación C/C++ / Re: ALGUIEN QUE ME PUEDA AYUDAR POR FAVOR, PROBLEMA CON LETRAS EN C++ en: 10 Marzo 2019, 00:09 am
Si la entrada del usuario puede ser de más de un caracter, entonces guárdalo en un <string>. Si sólo va a ser un caracter puedes usar un <char>.
Te dejo un código simple donde implemento un filtro para que se introduzca un número:
Código
  1. char respuesta;
  2. do{
  3.    cout << "Introduce un numero: ";
  4.    cin >> respuesta;
  5. }  while(respuesta < '0' || respuesta > '9');

También puedes usar la función <isdigit()> de la librería <cctype>:
Código
  1. char respuesta;
  2. do{
  3.    cout << "Introduce un numero: ";
  4.    cin >> respuesta;
  5. }  while(!isdigit(respuesta));

Si por ejemplo se aceptan como respuestas válidas los números de más de una cifra, tendrías que guardarlo en un <string> y comprobar que el <string> lo que contiene son dígitos. Suerte :-X
726  Programación / Programación C/C++ / Re: Dudas juego ahorcado en C en: 10 Marzo 2019, 00:03 am
Lo cierto es que sí que se puede usar un único array. Se inicializa con tamaño suficiente para todas las letras posibles pero con valores nulos. Y cada vez que el usuario introduce un caracter, se comprueba si ya está en el array; si está, se solicita otro caracter y si no está se da por válido y se introduce.
Yo había dado la otra idea porque es más visual y he creído que es mejor si está empezando. :-X
727  Programación / Programación C/C++ / Re: ALGUIEN QUE ME PUEDA AYUDAR POR FAVOR, PROBLEMA CON LETRAS EN C++ en: 9 Marzo 2019, 23:11 pm
Lógicamente si estás guardando el valor de entrada en un <int> e introduces una letra, tendrás un resultado no esperado.
Eso se suele dar por hecho y dejarlo como una precondición para el correcto funcionamiento sin necesidad de implementar nada al respecto.
Si lo quieres controlar tendrás que comprobar que lo que se ha introducido es un número. Por ejemplo mediante un filtro, guardando la entrada en un <string> o <char[]> y si es un número, convertirlo a entero (existen funciones para ello) y continuar con el curso del programa. Suerte :-X
PD: Las etiquetas del código pls... :rolleyes:
728  Programación / Programación C/C++ / Re: ALGUIEN QUE ME PUEDA AYUDAR POR FAVOR, PROBLEMA CON LETRAS EN C++ en: 9 Marzo 2019, 22:55 pm
Lo primero, coloca tu código entre etiquetas de código GeSHi (puedes seleccionarlas en un desplegable que hay encima del cuadro de texto cuando escribes/modificas un mensaje). Es más difícil de ver y puede dar lugar a errores al no estar dentro de las etiquetas.

Aparte como el código es bastante largo, si puedes especificar en qué momento falla... Es decir, qué línea o bloque de instrucciones se está ejecutando justo en el momento que el programa entra en el bucle infinito :rolleyes: :-X
729  Programación / Programación C/C++ / Re: Dudas juego ahorcado en C en: 9 Marzo 2019, 22:17 pm
Para ello debes poder almacenar la información. Creo que la forma más visual es mediante dos arrays, uno de tipo <char> y otro de tipo <bool> (se puede añadir la librería <stdbool.h> para poder usar variables boolenas) o sino de tipo <int> con {0,1}.
Cuando te dicen una letra, la buscas en el array de <char>, coges su posición y miras esa posición en el array de tipo <bool/int>. Si el valor es 0, aceptas la letra y lo pones a 1, si el valor es 1, el usuario tiene que elegir otra letra. Suerte :-X
730  Programación / Programación C/C++ / Re: Trabajar con un array pasado de una función en: 9 Marzo 2019, 17:40 pm
Coloca tu código entre etiquetas de código GeSHi (hay un desplegable encima del cuadro de texto cuando escribes/modificas un mensaje). Sin las etiquetas es difícil de interpretar el código ya que algunos corchetes [] se interpretan como etiquetas y el código parece incompleto... :rolleyes:

Lo primero decirte que en tu programa principal <main> has mezclado memoria estática y dinámica. Usa una o la otra, no las dos...
Y la función <crear_vector()> no devuelve un valor correcto, mira a ver eso, tienes que devolver el puntero a la primera posición del vector, no el valor de esa posición.

Cuando se pasa un array como parámetro lo que se pasa es un puntero que apunta a la primera dirección del array. Entonces en una función para mostrar, por ejemplo, un array, debes pasar el array (puntero al primer elemento) y su tamaño, para poder recorrerlo.

Si quieres reservar memoria en un puntero de forma dinámica, pasando el puntero como función, este debe pasarse por referencia (puedes buscar cómo pasar parámetros por referencia en C, ya que se pasa todo por valor). Y si reservas memoria con <malloc> (en C) o <new> (en C++), luego debes liberar esa memoria manualmente con <free> o <delete> respectivamente.

Suerte :-X



Páginas: 1 ... 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 [73] 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 ... 102
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines