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 2 [3] 4 5
21  Programación / Programación C/C++ / Re: Existe alguna función o alguna forma para contar archivos/ficheros .txt en: 8 Octubre 2014, 07:34 am
Hola
Siendote sincero, no tenia idea de como hacerlo XD
Asi que trate de buscar como un método en java para luego buscar su "equivalente" al lenguaje que quieres.

Encontre una solucion (Para Java) que decia algo asi:

Código:
Listar los ficheros de un directorio, pero en lugar de imprimir los nombres de los ficheros,
analizas las extensiones de los tipo de ficheros que quieres contar.

Entonces si tu  quieres contar todos los ficheros, los listas(no imprimir) y le pones un contador.
En el foro hay varios hilos respecto a listar ficheros en C/C++. No quisiera revivir un hilo  :-X
Saludos y suerte.
22  Programación / Programación C/C++ / Re: Alguien tiene algun libro sobre archivos que me pase en: 8 Octubre 2014, 07:27 am
Hola, te cuento que yo tambien estoy llevando un curso llamado "Organización de archivos" ó mas bien "organizacion de datos en archivos".
Aunque un poco viejito y hay codigo solo en C y pascal, la teoria esta buena.
Código:
Estructuras de archivos: un conjunto de herramientas conceptuales. Michael Folk
En opinion personal con lo que poco que e aprendido hasta ahora diría que el tema de archivos más que la sintaxis de un lenguaje, lo más importante es el conocimiento de técnicas/algoritmos para el manejo de estos, asi que espero te sirva el libro  :P
Con las técnicas que enseñan en el libro,y la referencia de ivancea96 te irá de maravilla  ;-)
Joder, no me fije la fecha del hilo, perdonen.
Saludos.
23  Programación / Programación C/C++ / Re: Ayuda algoritmo en: 5 Octubre 2014, 18:13 pm
Se parece mucho al metodo de fuerza bruta, busca sobre "string matching".
Se puede implementar en una sola función.
Saludos.
24  Programación / Programación C/C++ / Re: Cambio en billetes y monedas en C++ en: 2 Octubre 2014, 00:46 am
Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5.    int continuar, chimichanga;
  6.    continuar = 0;
  7.    while (continuar == 0)
  8.    {
  9.    printf("\nMenu: \n 1.-Paque-te pongas feliz.  \n 2.-Paque-te llenes.  \n 3.-Paque-te enojes");
  10.    printf("\nSelecciona tu paquete: ");
  11.    scanf("%d",&chimichanga);
  12.    int precio;
  13.    int billetes, sobra, moneda;
  14.  
  15.    switch(chimichanga)
  16.    {
  17.            case 1:
  18.                precio=100;
  19.            printf("Elegiste el paquete %d, su precio es de %d este incluye: ",chimichanga, precio);
  20.            printf("\n Chocolate caliente. \n 3 churros. \n 5 tacos.");
  21.            break;
  22.            case 2:
  23.                precio=80;
  24.                printf("Elegiste el paquete %d, su precio es de %d este incluye: ",chimichanga, precio);
  25.                printf("\n Cafe \n Concha \n Torta");
  26.                break;
  27.            case 3:
  28.                precio=40;
  29.                printf("Elegiste el paquete %d, su precio es de %d este incluye: ",chimichanga, precio);
  30.                printf("\n Agua. \n Bolillo. \n Chayote.");
  31.                break;
  32.            default:
  33.                printf("Escoge un paquete valido.");
  34.    };
  35.    int pago, cambio;
  36.    printf("\n indica con cuanto vas a pagar: ");
  37.    scanf("%d", &pago);
  38.    if (pago>=precio)
  39.     {
  40.           cambio=pago-precio;
  41.           printf("\n su cambio es de: %d", cambio);
  42.  
  43.           billetes= (int) cambio/200;
  44.           printf("\n %d billetes de 200", billetes);
  45.           sobra=(int) cambio%200;
  46.  
  47.  
  48.           billetes=(int) sobra/100;
  49.           printf("\n %d billetes de 100", billetes);
  50.           sobra=(int) sobra%100;
  51.  
  52.           billetes=(int) sobra/50;
  53.           printf("\n %d billetes de 50", billetes);
  54.           sobra=(int) sobra%50;
  55.  
  56.           billetes=(int) sobra/20;
  57.           printf("\n %d billetes de 20", billetes);
  58.           sobra=(int) sobra%20;
  59.  
  60.           moneda=(int) sobra/10;
  61.           printf("\n %d monedas de 10", moneda);
  62.           sobra=(int) sobra%10;
  63.  
  64.           moneda=(int) sobra/5;
  65.           printf("\n %d monedas de 5", moneda);
  66.           sobra=(int) sobra%5;
  67.  
  68.           moneda=(int) sobra/2;
  69.           printf("\n %d monedas de 2", moneda);
  70.           sobra=(int) sobra%2;
  71.  
  72.           printf("\n %d monedad de 1", sobra);
  73.     }
  74.        else
  75.        {
  76.            printf("\n pague lo que se indica.");
  77.        };
  78.        printf("\nQuieres escoger algun otro paquete? Presiona 0 si tu respuesta es si y 1 si es no: ");
  79.    scanf("%d", &continuar);
  80.    system("cls");
  81.    };
  82. }
  83.  


En lugar de
Código
  1. billetes=(int) sobra/100;
  2. printf("\n %d billetes de 100", billetes);
  3. sobra=(int) cambio%100;
  4.  
Debería ser
Código
  1. billetes=(int) sobra/100;
  2. printf("\n %d billetes de 100", billetes);
  3. sobra=(int) sobra%100;
  4.  
Y asi para los que siguen, en la primera si debes usar cambio, pero en las que siguen me parece que no.
Saludos  :)
25  Programación / Programación C/C++ / Re: Codigo para identificar el Sistema operativo [C/C++] [Resuelto] en: 28 Septiembre 2014, 17:03 pm
No sabia que tambien podia poner
#ifdef _WINDOWS_
#endif
 más adentro del codigo  :o (al ver el simbolo # asumí que tenia que ir arriba xD).
Gracias a ambos, lo tendre en cuenta.
26  Programación / Programación C/C++ / Re: Duda con Array c++ 2 Dimensiones y vector de profundiad char nombre[X][Y] en: 28 Septiembre 2014, 01:16 am
Hola, yo lo hize asi
Código
  1. // LIBRERIAS
  2. #include <iostream>
  3. #include <stdio.h>
  4. using namespace std;
  5.  
  6. // Variables Globales
  7. const int  NR = 2;
  8. int i,j;
  9. char nombre[10][10];
  10. char apellido[10][10];
  11.  
  12. // Funcion Madre
  13. int main(void){
  14.  
  15.  
  16. cout << "Ingrese 5 Nombres y apellidos" << endl;
  17.  
  18. for (i = 0; i < NR; i++ ){
  19. cout << "Nombre [" << i << "]: ";
  20. cin >> nombre[i];
  21. fflush(stdin);
  22. cout << "apellido [" << i << "]: ";
  23. cin >> apellido[i];
  24. fflush(stdin);
  25. }
  26.  
  27. for (i = 0; i < NR; i++ ){
  28. cout << "Nombre [" << i << "]: ";
  29. cout << nombre[i] << endl;
  30. cout << "Apellido [" << i << "]: ";
  31. cout << apellido[i] << endl ;
  32.  
  33. }
  34. return 0;
  35. }
  36.  

Salida:
Código:
Ingrese 2 Nombres y apellidos
Nombre [0]: Perico
apellido [0]: Palo
Nombre [1]: Brujo
apellido [1]: Brujito
Nombre [0]: Perico
Apellido [0]: Palo
Nombre [1]: Brujo
Apellido [1]: Brujito

Estas creando un arreglo bidimensional de 10 filas por 10 columnas.
Por lo que te da para:
                           Pos Colum.
                           0123456789
Apellido [cero] ="dasd56789X"
Apellido [2] =    "huu456789X"
   .. ...
Apellido [9] =    "gvvb56789X"
Entonces no creo que debas manejar el indice de las columnas.

Ahora el problema que tambien tenia era acerca del buffer(creo xD).


Saludos  :D
27  Programación / Programación C/C++ / Re: Codigo para identificar el Sistema operativo [C/C++] en: 28 Septiembre 2014, 00:43 am

Gracias man.
Bueno dejo el código, espero tambien le sirva a alguien.

Código
  1. #ifdef __linux__
  2. #define LIMPIAR "CLEAR"
  3. #endif // __linux__
  4.  
  5. #ifdef __MINGW32__
  6. #define LIMPIAR "CLS"
  7. #endif // __MINGW32__
  8.  
  9. #include <stdio.h>
  10.  
  11. int main(int argc, char *argv[]){
  12.    printf("texto de prueba");
  13.    system(LIMPIAR);
  14.    printf("texto de prueba2");
  15.    return 0;
  16. }
  17.  
Saludos  :)
28  Programación / Programación C/C++ / Codigo para identificar el Sistema operativo [C/C++] [Resuelto] en: 27 Septiembre 2014, 23:48 pm
Hola a todos.
Sé que esta mal pedir codigo, o puedan pensar que quiero que me hagan la tarea, pero no es asi...

Verán, desde antes de entrar a la universidad yo usaba trisquel gnu/linux como S.O.
Pero cuando entre a la universidad me empezaron a asignar pequeños programitas de consola en C/C++ (hago menus con switch y requiero limpiar pantalla,etc) pero tengo que hacer mis programas usando system(cls) porque en la universidad solo hay pc's con windows xD!
Asi que desgraciadamente tuve que volver a windows, algunos dirán que es muy drástica esa decision  :-X
Lo que me gustaría es que me ayuden, si ustedes tienen algo para que mi programa reconozca que SO es y en base a eso, ejecute ciertas instrucciones
Ejemplo si el so es gnu/linux: que se ejecuten las ins. "clear" y si fuese windows "cls".
Otro ejemplo para hacer un programa que maneje archivos, el separador en la ruta en win es \ y en linux /.

Gracias de antemano.
29  Programación / Programación C/C++ / Re: Archivo con registros de longitud variable [C] en: 27 Septiembre 2014, 03:46 am
Hola Drewermerc, gracias por responderme.
Vaya que me hizo sufrir este problema  ;-)

Pero bueno, en lugar de ir directo al codigo, fuí a mi cama a pensarlo.
Y termine haciendolo asi.
Código
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. FILE *fd;
  5.  
  6. void mostrarHotmails(void);
  7.  
  8. int main(int argc, char *argv[]){
  9.    mostrarHotmails();
  10.    return 0;
  11. }
  12.  
  13.  
  14. void mostrarHotmails(void){
  15.  
  16.    if( (fd=fopen("data_Prog_01.txt","rt")) == NULL ){
  17.        printf("\nNo se pudo abrir el archivo.");
  18.        exit(-1);
  19.    }
  20.  
  21.    else{
  22.        char find[13];      // email que voy a buscar
  23.        char email[15];     // para almacenar dominio del usuario (luego comparo con find)
  24.        char contacto[30];  // para almacenar todo el correo del contacto
  25.        int contC = 0;      //este contador me indica si ya llegue al campo de email
  26.        int i=0;
  27.        int ie=0;
  28.        char c;
  29.        fseek(fd,0,0);
  30.        printf("ingrese dominio: ");
  31.        gets(find);
  32.  
  33.        while( !feof(fd)){  // Para recorrer todo el archivo
  34.  
  35.            //mover el puntero/cursor hasta el campo de email.
  36.            while(contC<2 && (c != EOF)){
  37.                c = fgetc(fd);
  38.                if( c == ';'){
  39.                    contC++;
  40.                }
  41.            }
  42.  
  43.            // para capturar parcialmente el correo (userX@)
  44.            while(c!='@' && (c != EOF)){
  45.                c = fgetc(fd);
  46.                contacto[i++] = c;
  47.            }
  48.  
  49.            contacto[i++] = '\0';
  50.  
  51.            if(c=='@' && (c != EOF)){//comienzo a capturar el dominio
  52.                ie=0;
  53.                c = fgetc(fd);
  54.                while(c!='^' && (c != EOF)){
  55.                    email[ie++] = c;
  56.                    c = fgetc(fd);
  57.                }
  58.                email[ie] = '\0';
  59.            }
  60.            // reinicio mi indice y contC para usar los arreglos
  61.            // para el siguiente registro.
  62.            i=0;
  63.            contC = 0;
  64.            //Comparo e imprimo
  65.            if(strcmp(email,find)==0){
  66.                printf("%s%s\n",contacto,email);
  67.            }
  68.        }// Fin while
  69.        fclose(fd);
  70.    }
  71. }
  72.  

Nuevamente gracías, ya nos leeremos en otra oportunidad.
Saludos  :D
30  Programación / Programación C/C++ / Archivo con registros de longitud variable [C] [Resuelto] en: 26 Septiembre 2014, 17:37 pm
Buenas a todos, espero que esten bien.
Tengo el siguiente problema, agradecería que le den una ojeada y me den algun consejo.

Tengo un archivo .txt con algunos registros con delimitadores
La estructura de mi archivo seria algo asi...
Código:
01;user01;user01@hotmail.com^02;user02;user02@gmail.com^03;user03;user03@yahoo.com^04;user04;user04@hotmail.com^05;user05;user05@facebook.com^
Donde:
Citar
';' delimitador de campo
'^' delimitador de registro
Lo que tengo que hacer por ahora es mostrar todo el registro de aquellos que tengan cuentas de hotmail

Lo que e hecho hasta ahora es
Código
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. FILE *fd;
  5.  
  6. void mostrarHotmails(void);
  7.  
  8. int main(int argc, char *argv[]){
  9.    mostrarHotmails();
  10.    return 0;
  11. }
  12.  
  13. void mostrarHotmails(void){
  14.    char c;
  15.  
  16.    if( (fd=fopen("data_Prog_01.txt","rt")) == NULL ){
  17.        printf("\nNo se pudo abrir el archivo.");
  18.        exit(1);
  19.    }
  20.  
  21.    else{
  22.        char find[13] = "@hotmail.com"; // email que voy a buscar
  23.        char email[13];                 // para almacenar el dominio de emails de los usuarios (para luego comparar con find)
  24.        char contacto[30];              // para almacenar todo el registro del contacto
  25.        int contC = 0;                  //este contador me indica si ya llegue al campo de email
  26.        fseek(fd,0,0);
  27.  
  28.        while( !feof(fd) ){ // mientras no sea fin de archivo, leer un caracter.
  29.  
  30.            c = fgetc(fd);
  31.            if( c == ';'){
  32.                contC++;
  33.  
  34.                if(contC==2){   // Ya llegue al inicio del campo email.
  35.                    c = fgetc(fd);
  36.                    while(c!='^'){
  37.                        int i=0; // indice para el arreglo contacto.
  38.                        contacto[i++] = c;
  39.                        if(c=='@'){
  40.                            int ie = 0; // indice de email
  41.  
  42.                            while(c!='^'){
  43.                                email[ie++] = c;
  44.                                contacto[i++] = c;
  45.                                c = fgetc(fd);
  46.                            }
  47.  
  48.                            email[ie] = '\0';
  49.                            contacto[i] = '\0';
  50.                            if(strcmp(email,find)==0){
  51.                                printf("%s\n",contacto);
  52.                            }
  53.                        }
  54.                        c = fgetc(fd);
  55.                    }
  56.                }
  57.            }
  58.            if( c == '^'){ // Fin de registro, reinicio el contador de campos.
  59.                contC = 0;
  60.            }
  61.  
  62.        } // Fin de while
  63.        fclose(fd);
  64.    }
  65. }
  66.  

El resultado al ejecutar el programa es este...
Citar
@@hotmail.com
@@hotmail.com

Como veran, me muestra dos veces el '@' y creo que es debido a que despues de guardar el caracter leido(linea 38) en la linea 44 lo vuelve a guardar.
Aun asi no entiendo porque solo me muestra los dominios y no toda la dirección de correo.

Me parece haber leido algo como "strcmp solo compara cadenas (no arrays de cadenas)", no se si por eso no me funcione el programa.

Gracias por su tiempo chicos  :D
Páginas: 1 2 [3] 4 5
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines