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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


  Mostrar Mensajes
Páginas: 1 ... 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 [30] 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 ... 381
291  Programación / Programación C/C++ / Re: Utilizar setlocale( ) para ingresar caracteres especiales con cin en: 8 Septiembre 2021, 11:12 am
¿Estas en Windows?
Código
  1. setlocale(LC_ALL, "es-ES");

https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/setlocale-wsetlocale
https://docs.microsoft.com/en-us/cpp/c-runtime-library/language-strings
292  Programación / Programación C/C++ / Re: Ayuda con código en: 8 Septiembre 2021, 09:42 am
Solo lo compile con VC++:
c:\src\???.cpp(19) : warning C4700: uninitialized local variable 'selector' used
c:\src\???.cpp(37) : warning C4700: uninitialized local variable 'preciou' used

Deberias inicializar esas 2 variables y seguramente selector ir cambiando segun lo que decida el usuario.
293  Programación / Programación C/C++ / Re: Ciclo DO WHILE en: 8 Septiembre 2021, 09:26 am
¿A que te referis con modificador? Ni isdigit ni cout tienen ningun efecto sobre la variable que se le pasa al primero ni la que se inserta al segundo, si podes asignar el valor de retorno de isdigit a una variable pero eso es otra cosa.

Para que isdigit pudiera asignarle un valor a su parametro tendria que recibirlo por referencia (eso se puede hacer con un puntero o una referencia; ver https://www.genbeta.com/desarrollo/punteros-y-referencias) y no por valor como lo hace (ver http://conclase.net/c/curso/cap15). Lo mismo pasa con el operador << cuando insertas en cout pero cin es diferente, cuando extraes le estas pasando un parametro por refrencia.

Código
  1. int isdigit( int ch );
  2.  
  3. template< class Traits > basic_ostream<char,Traits>& operator<<(basic_ostream<char,Traits>& os, const char* s ); //insertar en cout
  4.  
  5. basic_istream& operator>>( int& value ); //extraer de cin

https://en.cppreference.com/w/cpp/string/byte/isdigit
https://en.cppreference.com/w/cpp/io/basic_ostream/operator_ltlt2
https://en.cppreference.com/w/cpp/io/basic_istream/operator_gtgt

En las 3 primeras lineas de codigo que dejaste hay asignaciones, la primera es simplemente un literal de cadena, las 2 siguientes asignan el resultado de funciones (los metodos son funciones miembro de una clase) y en la 4 no cambia ninguna variable, se insertan 6 valores - de diferentes tipos y por eso se usan diferentes operadores (funciones) sobrecargados - en cout que los escribe en la consola o casi.

¿Como es posible insertar i en "\n"? ¿O peor aun como es posible que una funcion (std::endl es un manipulador) sea insertada en un float (f)? La clave esta en el valor de retorno del operador << que es basicamente una referencia a std::cout. En la ultima linea pasa esto:

Código
  1. operator<<(operator<<(operator<<(cout, s), "\n").operator<<(i), "\n").operator<<(f).operator<<(endl);

Notese que la variable cout solo se pasa UNA vez en toda la linea y los operadores la van retornando, con funciones miembro (caso en el que llama al operador con un solo parametro) y no miembro (cuando usa dos parametros siendo el primero el valor de retorno de otro operador, siempre la referencia a cout en nuestro ejemplo).
294  Programación / Programación C/C++ / Re: Ciclo DO WHILE en: 7 Septiembre 2021, 22:20 pm
cin y cout no son funciones (las funciones se llaman con sus parametros entre parentesis), son objetos y de hecho son variables del namespace std. Obviamente los operadores >> y << estan sobrecargados, en realidad lo que sucede es equivalente a esto:

Código
  1. do
  2. {
  3.    operator<<(cout, "Introduzca un numero entre 1 y 9: "); //funcion no miembro
  4.    cin.operator>>(n); //funcion miembro
  5. } while (!(n > 0 && n < 10));

https://en.cppreference.com/w/cpp/io/cout
https://en.cppreference.com/w/cpp/io/cin
295  Programación / Programación C/C++ / Re: Ciclo DO WHILE en: 7 Septiembre 2021, 11:09 am
El punto del bucle es forzar a que se introduzca un valor entre 1 y 9, y solo cuando esto ocurra n se usara, no es un contador. El bucle puede haber finalizado pero a la variable n se le asigno un valor y no lo pierde por haberse terminado ... su ambito no es el bucle.
296  Foros Generales / Foro Libre / Re: Afganistán queda formalmente en manos de los talibanes en: 2 Septiembre 2021, 23:05 pm
La verdad se convierte en mentira cuando se omite el detalle, como acabas de hacer tú...

Si en tu país fue invadido es normal que surja una resistencia y que al menos parcialmente sea armada.

Le explicaron con mucha claridad que la insurgencia ya estaba presente antes de la invasion de la URSS asi que aca esta MINTIENDO ALEVOSAMENTE o es un inculto que confunde causa con efecto.

...en tu caso parece que el objetivo es cabalgar siempre contra todo, incluso hasta lo que es negro o blanco fuera de toda duda, pretendes llevarlo al extremo opuesto, y para ello 10 enlaces y 20 párrafos o los que hagan falta con tal de marear la perdiz y que la duda desborde al inculto.

USA simplemente les enseñó a luchar para defenderse de la invasión soviética

Falso; despues pretende hablar de que un articulo de Wikipedia esta sesgado cuando no pierde opurtunidad alguna para demostrar el suyo.

"He dicho, cúmplase"... Así es como se pronuncian los dictadores.

¿Quiere un pañuelo para secarse las lagrimas de cocodrilo? No lo digo yo, lo dicen todas las fuentes citadas, no veo que tenga nada que argumentar al respecto. ¿Sabe como se pronuncia un necio? Regurgita lo que vagamente recuerda que dijeron los medios de comunicacion que consumia hace 40 años.

Mi 'ideología' como tu lo llamas no existe, tengo una visión de conjunto del ser humano, no individualizo porque no tiene sentido, pero no quita que analice y contemple los errores comunes que cada facción comete una y otra vez y si de mi dependiera, quedaba prohibdo la política en el mundo, izquierdas y derechas... Tú supones erróneamente que estar en desacuerdo con gente de izquierdas supone ser de derechas. Para ti las personas son como una moneda que solo tiene cara y cruz, pero las personas tienen demasiadas facciones para resumirlas en dos contrapuestas, pero como es más fácil controlar a las personas si simplemente los divides en dos grupos (el tuyo y el resto), pues hale...
El planeta está enfermo precisamente por la ideología política, al final sucederá como antaño...

Larga perorata para no admitir que toca de oido en el tema y lo que dijo era falso.
297  Foros Generales / Foro Libre / Re: Los talibanes aguardan a las afueras de Kabul mientras negocian con el Gobierno afgano la entrada "pacífica" en: 2 Septiembre 2021, 09:12 am
Afganistán era pobre, pero estaban felices y en paz, hasta... la invasión de la URSS.

Esto es falso, asi de simple, no estaban felices y en paz, y se desprende de TODAS las fuentes que fueron citadas en este hilo. ¿No encaja con tu ideologia? Se siente.
298  Programación / Programación C/C++ / Re: Dev-C++ no muestra el valor esperado en: 1 Septiembre 2021, 12:41 pm
De nada  ::)
299  Programación / Programación C/C++ / Re: Dev-C++ no muestra el valor esperado en: 1 Septiembre 2021, 08:58 am
Eso ya era otro problema en tu codigo de base, usaste \n que es un salto de linea y tenes que comprender que no lo lograste en ningun momento, tu bucle solamente llamaba a gotoxy en cada iteracion, nada mas, el cout estaba fuera del bucle y usaba otra variable i no inicializada. Ese 16 era una casualidad, podia ser cualquier valor y en mi caso era 0 por ejemplo.

Esto supongo que si hace lo que querias:
Código
  1. for (int i = 0; i <= 10; ++i)
  2. {
  3.    gotoxy(3,19);
  4.    cout << i << "\r";
  5. }
  6.  
300  Programación / Programación C/C++ / Re: Dev-C++ no muestra el valor esperado en: 31 Agosto 2021, 09:09 am
El problema no es el entorno, es el codigo.

Hay dos variables i, una solo tiene ambito dentro del bucle for y el mismo solo tiene una sentencia (la de gotoxy), despues tenes un bloque de codigo (las llaves ahi no cumplen ninguna funcion mas que la de agrupar, las podrias sacar y el codigo generado seria exactamente el mismo) que se ejecuta una sola vez y que empuja una variable i sin inicializar en cout.

Código
  1. gotoxy(3,19);
  2. for (int i = 0; i <= 10;  ++i)
  3.    cout << i << endl;
  4.  


VC++ al compilar te da un aviso:
c:\src\???.cpp(31) : warning C4700: uninitialized local variable 'i' used
Páginas: 1 ... 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 [30] 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 ... 381
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines