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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / Ficheros AutoStart en: 17 Septiembre 2019, 15:19 pm
Hola buenas, estoy aprendiendo ficheros y he caido que puedes crear un .bat y como buena mente perversa y bromista se me ha ocurrido gastarle una broma a un compañero de clase.

La cosa es crear un .bat que contenga:
Código
  1. shutdown -s -t 500 -c "(O.o)  (o.O)"

(Le pongo 500 seg para que haya tiempo suficiente para cancelarlo usando: shutdown -a)

La cosa es que se ejecute ese .bat cada vez que inicie el pc. Aunque haga falta permisos de administrador o algo. Se me ocurrio crear el .bat directamente en la carpeta de AutoStart de windows 10 pero esta bloqueado y no se como en Dev C++ se puede hacer un .exe que pide permisos de admin para ejecutarse.

O si hay alguna otra manera. Es solo para acojonarlo un poco y luego quitarselo xD

PD: Tengo ya el programa hecho para que cree el .bat y que lo ejecute pero como he ficho antes no puedo crearlo en la carpeta de AutoStart

 
2  Programación / Programación C/C++ / Duda con Ficheros C++ en: 15 Septiembre 2019, 00:27 am
Cuando imprime el contenido del .txt por la consola, al final del programa me imprime 2 endl, por? No debería ser 1 solo endl?

Código
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. void LecturaArchivo();
  5.  
  6. int main(){
  7.  
  8. LecturaArchivo();
  9.  
  10. return 0;
  11. }
  12.  
  13. void LecturaArchivo(){
  14. std::string Ruta, Frase;
  15. std::ifstream Archivo;
  16.  
  17. std::cout << "Digite la ruta del archivo para abrir entre \"\"\nRuta: ";
  18.  
  19. std::getline(std::cin,Ruta);
  20.  
  21. Archivo.open(Ruta.c_str(),std::ios::in);
  22.  
  23. if (Archivo.fail()){
  24. std::cout << "No se pudo abrir el Archivo";
  25. exit(1);
  26. }
  27.  
  28. std::cout << "\n\n";
  29. while (!Archivo.eof()){
  30. std::getline(Archivo,Frase);
  31. std::cout << Frase << std::endl;
  32. }
  33. }
3  Programación / Programación C/C++ / Problema con las Listas C++ en: 8 Septiembre 2019, 11:12 am
Estoy viendo Listas y no entiendo muy bien que estructura tiene que tener la lista.
He visto listas que usan el mismo método que las colas, luego que el usar el primer valor como inicio de la lista y los siguientes valores entran como si fueran una cola (pero el primer valor sigue teniendo la misma posición) o colas ordenadas por tamaño

Con colas ordenadas con tamaño me refiero a:
Cola normal: Nodo1 (Nodo1->Siguiente) ->Apunta a-> Nodo2(Nodo2->Siguiente) ->Apunta a-> Nodo3(Nodo3->Siguiente) ->Apunta a-> NULL


Cola ordenada por tamaño: Nodo1 (Nodo1->Siguiente) ->Apunta a-> Nodo3(Nodo3->Siguiente) ->Apunta a-> Nodo2(Nodo2->Siguiente) ->Apunta a-> NULL

siendo N1<N3<N2;

La conclusión que he llegado yo es que si no esta ordenado como una cola o una pila es una lista xD.

Se que de listas hay varios tipos como doblemente enlaza y circulares pero me refiero que cuando se hace una sucesión de nodos, sino es LIFO y no es FIFO ya se convierte automáticamente en una lista no?
4  Programación / Programación C/C++ / Problema con las pilas C++ en: 28 Agosto 2019, 21:28 pm
Estoy comenzando a ver las pilas y me pareció que parecía igual que un vector de una estructura pero con más parafernalia y mas lioso, en que se diferencia:

Código
  1. #include <iostream>
  2. #include <cstdlib>
  3.  
  4. using namespace std;
  5.  
  6. struct Nodo{
  7. int dato;
  8. Nodo *siguiente;
  9. }
  10.  
  11. void agregarPila(Nodo *&,int);
  12. int main(){
  13. Nodo *pila = NULL;
  14.  
  15.  
  16.  
  17.  
  18. cin.get();
  19. return 0;
  20. }
  21.  
  22. void agregarPila(Nodo *&pila,int n){
  23. Nodo *nuevo_nodo = new Nodo();
  24. nuevo_nodo.dato = n;
  25. nuevo_nodo.siguiente = pila;
  26. pila = nuevo_nodo;
  27. }

de:

Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. struct Nodo{
  6. int dato;
  7. }nodo[2], *pila = nodo //&nodo[0]
  8. //Ahora puedo usar cualquier dato de la plia sin estar restringido al nodo superior
  9.  
  10. int main(){
  11.  
  12. cin.get();
  13. return 0;
  14. }

Me parece mejor incluso usar un vector de estructura ya que no estas restringido a ir de forma ascendente. (La única pega que le veo es que tienes que darle un tamaño inicial al vector y si usas de menos estas desperdiciando memoria o si usas de más te quedas corto y no puedes almacenarlo todo)
5  Programación / Programación C/C++ / Problema con los punteros C++ en: 25 Agosto 2019, 16:47 pm
Estoy empezando con C++ y hay algo que no entiendo por qué esta pasando, aquí esta mi codigo:

Código
  1. #include <iostream>
  2. #include <conio.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5.  
  6. using namespace std;
  7.  
  8. int pedirNombre();
  9. void contarVocales(char*,int);
  10. void mostrarVocales();
  11.  
  12. int *p_a, *p_e, *p_i, *p_o, *p_u; // punteros de los contadores;
  13. char *nombre;
  14.  
  15. int main(){
  16.  
  17. contarVocales(nombre,pedirNombre());
  18. mostrarVocales();
  19.  
  20.  
  21.  
  22. getch();
  23. return 0;
  24. }
  25.  
  26. int pedirNombre(){
  27. int longitud;
  28. char usuario[30];
  29.  
  30. cout<<"Digite su nombre: ";
  31. cin.getline(usuario,30,'\n');
  32. longitud = strlen(usuario);
  33.  
  34. nombre = &usuario[0];
  35.  
  36. return longitud;
  37. }
  38.  
  39. void contarVocales(char* nombre,int n){
  40. int c_a, c_e, c_i, c_o, c_u; //contador vocales;
  41.  
  42. c_a = 0;
  43. c_e = 0;
  44. c_i = 0;
  45. c_o = 0;
  46. c_u = 0;
  47.  
  48. p_a = &c_a;
  49. p_e = &c_e;
  50. p_i = &c_i;
  51. p_o = &c_o;
  52. p_u = &c_u;
  53.  
  54. for(int i=0;i<n;i++){
  55. switch(*(nombre+i)){
  56. case 'a': c_a++; break;
  57. case 'e': c_e++; break;
  58. case 'i': c_i++; break;
  59. case 'o': c_o++; break;
  60. case 'u': c_u++; break;
  61. }
  62. }
  63. }
  64.  
  65. void mostrarVocales(){
  66. cout<<"num. de a: "<<*p_a<<endl;
  67. cout<<"num. de e: "<<*p_e<<endl;
  68. cout<<"num. de i: "<<*p_i<<endl;
  69. cout<<"num. de o: "<<*p_o<<endl;
  70. cout<<"num. de u: "<<*p_u<<endl;
  71. }

SALIDA:
---------------------------------------------------------------------------------------
Digite su nombre: aaaaaeeeeiiioou
num. de a: 1
num. de e: 4
num. de i: 3
num. de o: 2
num. de u: 1
---------------------------------------------------------------------------------------------

Si pongo un cout dentro de la funcion contarVocales() *p_a me da el valor correcto pero una vez sale de esa funcion y se meustra en la funcion mostrarVocales() me da el valor 1 todo el rato. El resto de vocales funcionan correctamente menos en la vocal a que es como si se borrase el valor al acabar la funcion y se sustituye por 1.

PD: he declarado los punteros de forma global por que no se otra forma de pasarlos a otra función y no se si puede pasar mas de un valor por el return (todos los ejemplos que he visto solo pasan 1 dato por el return).

PD2: por que cuando se usa una variable global como *nombre se declara dentro de el prototipo de función si en teoría si lo pasas sin referenciar también sive puesto que es un puntero global, es decir, en ves de usar:

Código
  1. void contarVocales(char*,int);

usar:

Código
  1. void contarVocales();

y escribir directamente la variable como en:

Código
  1. int pedirNombre();


Tengo un cacao con eso, debo o no debo poner las variables globales dentro del parentesis?¿ por lo que se si lo hago sin ser un puntero y no utiliza & pasaría una copia del valor (para asi no modificar el valor de la variable y usarlo en otra funciones si hace falta) pero en los punteros no veo la diferencia la verdad.

Se que es mucho pero la verdad agradecería a algún iluminado que me resuelva estas dudas que me están volviendo loco  ;D ;D. No quiero seguir más adelante con el curso ya que prefiero tener todo bien claro antes de profundizar más. Gracias!!!
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines