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

 

 


Tema destacado: Curso de javascript por TickTack


  Mostrar Mensajes
Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ... 401
51  Programación / Programación C/C++ / Re: Ayuda con este programa en C en: 23 Julio 2018, 19:59 pm
Si bien es cierto que está bien usar tipos que concuerden entre sí, yo no recomendaría usar unsigned salvo que sea totalmente necesario.
Fíjate, por ejmeplo, en esto: (dia>=0) ? "menor":"mayor"
dia es unsigned, así que siempre va a ser mayor o igual a 0.
La lógica y las operaciones cambian, además de que conseguiremos fácilmente un underflow al andar haciendo restas sin comprobaciones (sin ir más lejos, si el dia o el mes de [1] es mayor que el de
  • saldrán resultados incorrectos).

Y en cuanto a la pregunta original, comparar fechas es como restar. Si el mes de la fecha más alta es menor que el de la más pequeña, igual que en una resta: le restas 1 al año y le sumas 12 al mes. Parecido para los días.
52  Programación / Programación C/C++ / Re: Problemas limitando caracteres en el ingreso en: 10 Julio 2018, 22:53 pm
No sirve el cin.clear();
Pero encontre otra alternativa lo dejo aqui, por ahi a alguien le sirve

Código
  1. #include <iostream>
  2. #include <cstring>
  3. #include <stdio.h> //Libreria para utilizar la funcion gets, fgets, fflush;
  4.  
  5. using namespace std;
  6.  
  7. int main(){
  8. char primera[10], segunda[10];
  9. cout << "Primera: ";
  10. fgets(primera, 11, stdin);
  11. fflush(stdin);
  12. cout << "Segunda: ";
  13. fgets(segunda, 11, stdin);
  14. fflush(stdin);
  15. cout << primera << endl;
  16. cout << segunda << endl;
  17. system("pause");
  18. }

Ahora si puedo poner tranquilamente: Nelson Growwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

El cin.clear(), como dije, limpia flags de error, no resuelve tu problema.
53  Programación / Programación C/C++ / Re: Problemas limitando caracteres en el ingreso en: 8 Julio 2018, 18:52 pm
2 cosas importantes:
  • Cuando ese getline deja de leer porque se ha llenado el buffer, activa el "failbit", el cual puedes ver si está activado con "cin.fail()", que retorna un bool. Con esto puedes ver si se ha leído el salto de línea o no.
  • Para volver a usar cin despues de que una flag de error haya sido establecida, puedes usar "cin.clear()"

Dicho esto, una posible opción sería, tras la lectura, comprobar si está el failbit activado. Y luego, leer con getline en bucle hasta que el failbit no se establezca, lo que significaría que ya se leyó el salto de línea.

Esta lógica la puedes meter en una función para evitar escribirla siempre.


Otro detalle: En C++, en vez de las cabeceras de C,e s preferible usar las cabeceras de C++ que vienen de C, que son las mismas con una "c" al principio y sin el ".h": "stdio.h" => "cstdio"...
54  Programación / Programación C/C++ / Re: std::list::erase <list> en: 4 Julio 2018, 20:03 pm
Si no pusieras el it2 = ..., it2 dejaría de ser un itrador válido.
Al hacer la asignación, it2 es el siguiente en la lista. Dado que luego se le hace el "--", vuelve para atrás (dado que se eliminó el antiguo it2, es lo mismo que haber hecho "it2--" antes del erase).

Asi que una de 2, o haces la asignación del erase, o te guardas un iterador al elemento anterior.
55  Programación / Java / Re: se puede extender varias clases hijas en cadena?? en: 2 Julio 2018, 20:43 pm
Sí, se puede hacer lo que dices, y todo lo que tenía la clase padre, lo tendrá la hija (salvo lo private, que no lo podrá ver). Y así recursivamente.

Tal como lo tienes, así es, y no tiene más magia.
56  Foros Generales / Noticias / Re: ¿Te ha ofrecido Pedro Sánchez un cargo público? Así puedes borrar todos tus .... en: 30 Junio 2018, 15:14 pm
Desde luego, si lo que hay en redes sociales es complementario a nuestra forma de ser, y ello pueda influir al entorno laboral... Sin duda debe ser tenido en cuenta.  Pero con cuidado, ya que las redes sociales no siempre describen a una persona.
57  Foros Generales / Noticias / Re: ¿Te ha ofrecido Pedro Sánchez un cargo público? Así puedes borrar todos tus .... en: 30 Junio 2018, 13:23 pm
Es cuestión de que las empresas valoren a la gente por lo que aportan y por las personas que son, y no por lo que han escrito en Twitter en el pasado.
58  Programación / Programación C/C++ / Re: Retornar punteros char? ¿Si o si memoria dinamica? en: 25 Junio 2018, 21:04 pm
Otra opción, y véase que esta tiene sus contras, es tenes un array static en la función:

Código
  1. char* func(){
  2.    static char arr[50];
  3.  
  4.    arr[0] = 'H';
  5.    arr[1] = 'o';
  6.    arr[2] = 'l';
  7.    arr[3] = 'a';
  8.    arr[4] = '\0';
  9.  
  10.    return arr;
  11. }

Una variable static en una función no va a liberarse cuando la función haya retornado, así que puedes retornar su dirección de memoria sin problema.
Si hicieras esto con memoria dinámica, tendrías que recordar el liberarla entre llamadas, o cuando fuera necesario,
59  Programación / Programación C/C++ / Re: Retornar punteros char? ¿Si o si memoria dinamica? en: 24 Junio 2018, 22:52 pm
Depende de cómo se haya declarado esa cadena.
Si es memoria dinámica, obtenida con malloc o new en C++, puedes devolverla (recordando que habrá que liberarla posteriormente).

Si hablamos de C++, y son cadenas de tipo std:.string o en general, un std::vector o cualquier otra clase del estilo, podrás retornarla sin problemas.
60  Programación / Programación General / Re: Python: Lectura errónea por teclado en: 24 Junio 2018, 18:22 pm
Estás usando Python 2, así que los números que comeinzan por 0 están en octal.
(octal) 101010101 == (decimal) 17043521
Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ... 401
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines