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

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [16] 17
151  Programación / Programación C/C++ / saber el tamaño de un archivo en c en: 28 Mayo 2014, 06:19 am
Un saludo a todos, necesito saber como obtener el tamaño de un fichero en C  ¿O solo se puede en C++?
Código
  1.  
  2. /*estoy utilizando*/  FILE *fichero;// en c
  3.  
  4. //se que en c++ es
  5.  
  6. int tam;
  7. fstream fichero;
  8.  
  9. fichero.seekg(0,ios::end);
  10.  
  11. tam=fichero.tellg();//esto siempre que el fichero sea binario secuencial
  12.  
  13. //o si quiero saber cuantas estructuras tengo escritas
  14.  
  15. tam=fichero.tellg()/sizeof(estructura);
  16.  
agradecimientos de antemano
152  Programación / Programación C/C++ / arreglo de doble buffer en: 22 Mayo 2014, 04:15 am
Hola a todos, tengo que usar un arreglo con doble buffer para un analisis lexico, de modo que pueda retroceder, por medio de un monton de algoritmos que he leido he intentado declarar un arreglo de la siguiente manera aunque tengo error:
Código
  1. const int halfsize 1024;
  2. const int size 2*halfsize;
  3.  
  4. char buffer[size];
  5.  
necesito una orientacion sobre como declarar un arreglo similar para hacer un escaner y que pueda empezar llenando por la parte baja (halfsize)
153  Programación / Programación C/C++ / Re: modificacion de variables constantes en: 20 Mayo 2014, 12:31 pm
Agradezco su orientacion, solo algo sobre M y n, por definicion en arboles B, n es el numero maximo de ramas que puede tener el nodo y M-1 es el numero maximo de claves por nodo, saludos
154  Programación / Programación C/C++ / modificacion de variables constantes en: 20 Mayo 2014, 04:12 am
Un saludo a todos, solo tengo una pequeña duda, tengo un codigo de arboles B, pero necesito modificar el orden del arbol B, o sea cuantos subarboles puede tener pero en el codigo el orden es una constante para crear el arreglo, y me da error al intentar modificar porque esta declarada como una constante, en fin lo que necesito es modificar esa variable de modo que el usuario defina el orden aqui la parte del codigo
Código
  1. #include <stdio>
  2. #include <stdlib>
  3. #include <conio>
  4.  
  5. #define MAX_LONG 90
  6. #define ARRIBA 72
  7. #define ABAJO 80
  8. #define ENTER 13
  9.  
  10. const int M=5;//aqui necesito modificar durante la ejecucion del programa
  11.                         // pero me da error si solo la declaro como una variable no
  12.                          // constante por lo del arreglo de claves que esta en la
  13.                         //estructura del nodo
  14. struct nodo
  15. {
  16.   int n; // n < M n? de claves en el nodo siempre ser? menor que el orden del B tree
  17.   int arreglo_claves[M-1]; //arreglo de claves
  18.   struct nodo *p[M]; // (n+1 punteros que van a ser usados
  19. }*root=NULL;//la raiz lo inicializamos en NULL
155  Programación / Programación C/C++ / diferencia entre variables char y string en c++ en: 12 Mayo 2014, 03:48 am
Un saludo a todos, estoy un poco confundido entre el uso de una variable tipo string y una variable tipo char, desde que empece en c++ cualquier cadena la he guardado en un arreglo tipo char, pero ultimamente estuve estudiando el uso del namespace y vi que puedo usar con esto una variable tipo string donde tambien guardo una cadena siempre con cin como que si fuera un entero y no con fgets que utilizo cuando es un arreglo tipo char lo que no se ahora cuando usar un string o un arreglo tipo char para guardar el nombre de una persona por ejemplo. Asimismo muchos ejemplos que he visto solo declaran using namespace std; y despues declaran string a;  pero me da error les dejo un codigo aunque no se si estoy implementando de manera correcta el uso de namespace y de string y si corre
Código
  1. #include <iostream>
  2. #include <cstring>
  3. #include <conio>
  4.  
  5. namespace std{
  6.   string a;
  7.   }
  8. using namespace std;
  9.  
  10. int main() {
  11. cout << "Introduciendo palabra: ";
  12. cin>>a; // veo que me guarda hasta donde encuentre un espacio en blanco
  13. //a = "d 91";
  14.  
  15. cout << "Mostrando lo que tiene a: "<<a;
  16. getch();
  17.  
  18. return 0;
  19. }
156  Programación / Programación C/C++ / barra de progreso en c++ en: 27 Abril 2014, 03:18 am
hola a toda la comunidad, solo necesito implementar una barra de progreso en c++, por ejemplo tengo un archivo txt y lo necesito cargar a una determinada estructura; pero tengo que mostrar el avance de la carga, ya he buscado como hacer las barras, pero las que he hecho solo funcionan con un ciclo for o con la funcion sleep donde yo decido cuanto se tardara en llenar, lo que ya se como hacer es contar el tiempo que ha durado la carga del archivo, pero no se como contar el tiempo restante para la carga que creo ayudaria a llenar la barra  agradecere las ideas.
157  Programación / Programación C/C++ / Re: Ficheros y estructuras en: 19 Abril 2014, 19:46 pm
solo te reestructure el codigo pero no me habia dado cuenta que la extension .csv de tu fichero es una extension de excel, por lo tanto no creo te vaya a fucionar mejor usa un .txt o .dat que son texto plano, si quieres usar el .csv es harina de otro costal, es algo que esta fuera del alcance de lo basico de c, porque adentro de excel podemos habilitar la opcion programador donde podemos hacer conexiones por medio de las librerias, un caso muy usado es la conexion de un formulario de visual basic hacia access o hacia excel
158  Programación / Programación C/C++ / Re: Ficheros y estructuras en: 19 Abril 2014, 16:27 pm
para empezar ya no tienes que hacer un arreglo de la estructura libros, porque estas usando ficheros, tus menus no funcionan porque no estan dentro de ciclos, y lo mas importante no puedes hacer un fichero manualmente, escribir en el y despues tratar de leerlo con el formato de tu estructura, sino que guardar cada cosa en otra variable de lectura de archivo directo y enviarlo a tu estructura y ademas deberias de modularizar tus case para no perderte,
Si quieres leer un fichero con el formato de tu estructura debes guardar datos con tu estructura, te reestructure el codigo solo para leer:
Código
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4.  
  5.  
  6. struct{
  7.    char id[30];
  8.    char titulo[30];
  9.    char autor[30];
  10.    char editorial[30];
  11.    int paginas;
  12. }libros;
  13. /******************funcion de busqueda************/
  14. void busqueda(){
  15. FILE *datalib;
  16. int op2;
  17. char temp[60];
  18. bool salir=false;
  19.   do{
  20.   system("cls");
  21. printf("\n Escoja la opcion: ");
  22.   printf("\n 1 - Busqueda por ID: ");
  23. printf("\n 2 - Busqueda por titulo: ");
  24.   printf("\n 0 - Salir: ");
  25. scanf("\n%d",&op2);
  26.   switch(op2){
  27.     case 1: {
  28.     system("cls");
  29.     if((datalib=fopen("C:\\libros.csv","r"))==NULL)
  30.     {
  31.       printf("Error al abrir el archivo!!\n");
  32.         system("pause");
  33.               }//if de comprobacion
  34.         else{
  35.         printf("Introduzca el ID del libro: ");scanf("%[^\n]",temp);
  36.            while(fread(&libros,sizeof(libros),1,datalib)==1) {
  37.                 if(strcmp(libros.id,temp)==0)
  38.                 {
  39.                 printf("\nID %s",libros.id);
  40.                 printf("\nTitulo %s",libros.titulo);
  41.                 printf("\nAutor %s",libros.autor);
  42.                 printf("\nEditorial %s",libros.editorial);
  43.                 printf("\nPaginas %d",&libros.paginas);
  44.                 }//del if comparador
  45.                 else{
  46.                 printf("\nRegistro No encontrado\n");
  47.                 system("pause");
  48.                 }//else de no encontrado
  49.            }//del while
  50.         } //del else
  51.      fclose(datalib);
  52.     }//del case 1
  53.     break;
  54.     case 2:{
  55. system("cls");
  56.     if((datalib=fopen("C:\\libros.csv","r"))==NULL)
  57.            {
  58.            printf("Error al abrir el archivo!!\n");
  59.            system("pause");
  60.            }//del if de comprobacion
  61.            else{
  62.                printf("Introduzca el titulo: ");scanf("%[^\n]",temp);
  63.                while(fread(&libros,sizeof(libros),1,datalib)==1){
  64.                    if(strcmp(libros.titulo,temp)==0){
  65.                 printf("\nID %s",libros.id);
  66.                 printf("\nTitulo %s",libros.titulo);
  67.                 printf("\nAutor %s",libros.autor);
  68.                 printf("\nEditorial %s",libros.editorial);
  69.                 printf("\nPaginas %d",&libros.paginas);
  70.                    }//del if de encontrado
  71.                    else{
  72.                    printf("\nRegistro No encontrado\n");
  73.                 system("pause");
  74.                    }//del else de no encontrado
  75.                }//del while
  76.            }//del else
  77.            fclose(datalib);
  78.     }//del case 2
  79.     break;
  80.     case 0: salir=true;
  81.     break;
  82.   }
  83.   }while(salir!=true);
  84.  
  85. }
  86. /***************procedimiento principal***********************/
  87. int main()
  88. { //del main
  89. int op,op2,i,j, cont=0,cant,salir=false;
  90. char temp[60];
  91. char temp2[60],elim[60];
  92. char *bus,*eli, *mos;
  93. FILE *datalib;
  94.         do{
  95.           system("cls");
  96.         printf("\n Escoja su opcion: ");
  97.         printf("\n 1 - Busqueda de registro de libro ");
  98.         printf("\n 2 - Agregar nuevo registro de libro ");
  99.         printf("\n 3 - Quitar registro de libro ");
  100.         printf("\n 4 - Modificar registro de libro ");
  101.         printf("\n 5 - Imprimir todos los registros ");
  102.         printf("\n 0 - Salir");
  103.         scanf("\n%d",&op);
  104.  
  105.        switch(op)
  106. { //del switch
  107.            case 1:
  108.               busqueda();//llama a la funcion de busqueda
  109.               break;
  110.            case 2:
  111.             system("cls");
  112.             printf("en construccion");
  113.               system("pause");
  114.               break;
  115.            case 3:
  116.             system("cls");
  117.               printf("en construccion");
  118.               system("pause");
  119.               break;
  120.            case 4:
  121.             system("cls");
  122.             printf("en construccion");
  123.               system("pause");
  124.               break;
  125.            case 5:
  126.             system("cls");
  127.            printf("en construccion");
  128.            system("pause");
  129.               break;
  130.            case 0: salir=true;
  131.            break;
  132.            }
  133.            }while(salir!=true);
  134.      }//del main
  135.  
para guardar, ingresar tus datos a la estructura y despues

Código
  1. FILE *datalib=fopen("C:\\libros.csv","a+");
  2. fwrite(&libros,sizeof(libros),1,datalib);
159  Programación / Programación C/C++ / guardar nodos en txt en: 17 Abril 2014, 19:21 pm
hola a todos, estoy haciendo mi proyecto final con programacion orientado a objetos pero no he encontrado algun tutorial de estructura de datos con archivos, pero he intentado ingeniarmelas, usando una cola dinamica para los pacientes que llegan a una clinica, he trabajado con archivos pero con estructuras no con clases aunque al parecer la diferencia es que las estructuras no tienen metodos, constructores y destructores y como son dinamicas aumenta la dificultad, se muy bien que en este codigo estoy alternando c y c++ pero lo que es archivos se me es mas facil en c. Entonces mi  dificultad es como guardar una cola dinamica en txt y despues volver a cargarla, hice algunos procedimientos para guardar pero no se si esta bien aqui el codigo

Código
  1. #include <iostream.h>
  2. #include <conio.h>
  3. #include <stdio.h>
  4. #include<string.h>
  5.  
  6.  
  7. class nodo {
  8.   public:
  9.    nodo(int num, char name[20], nodo *sig = NULL)
  10.    {
  11.    numero=num;
  12.    strcpy(nombre,name);
  13.    siguiente=sig;
  14.    }//constructor
  15.   private:
  16.    int numero;
  17.    char nombre[20];
  18.    nodo *siguiente;
  19.  
  20.    friend class cola;
  21. };
  22.  
  23. typedef nodo *pnodo; //definimos un tipo de dato personalizaodo. Tipo puntero de la clase NODO
  24.  
  25. class cola {
  26.   public:
  27.       cola() : primero(NULL), ultimo(NULL) { }
  28.    ~cola();
  29.  
  30.    void encolar(int num, char name[]);
  31.    int desencolar();
  32.    void Mostrar();
  33.    void Guardar(int cont);
  34.  // private:
  35.   pnodo primero, ultimo;
  36. };
  37. cola paciente;
  38. cola::~cola()
  39. {
  40.   while(primero) desencolar();
  41. }
  42.  
  43. void cola::encolar(int num, char name[])
  44. {
  45.   pnodo nuevo;
  46.   nuevo = new nodo(num,name);
  47.   if(ultimo) ultimo->siguiente = nuevo;
  48.   ultimo = nuevo;
  49.   if(!primero) primero = nuevo;
  50. }
  51.  
  52. int cola::desencolar()
  53. {
  54.   pnodo nodo; /* variable auxiliar para manipular nodo */
  55.   int v;      /* variable auxiliar para retorno */
  56.  
  57.   nodo = primero;
  58.   if(!nodo) return 0; /* Si no hay nodos en la pila retornamos 0 */
  59.   primero = nodo->siguiente;
  60.   //v = nodo->valor;
  61.   delete nodo;
  62.   if(!primero) ultimo = NULL;
  63.   return 1;
  64. }            /*Procedimiento Mostrar Cola*/
  65. /*--------------------------------------------------------*/
  66. void cola::Mostrar(){                                     //
  67. pnodo aux;                                                //
  68. aux=primero;                                           //
  69.   while(aux!=NULL){                                      //
  70.      cout<<"\n\nnumero de paciente "<<aux->numero;
  71.      cout<<"\nNombre "<<aux->nombre;                              //
  72.      aux=aux->siguiente;                                 //
  73.   }                                                      //
  74. }                                                         //
  75.  
  76. /********************Guarda en txt*************************/
  77.  
  78. void cola::Guardar(int cont){
  79. FILE *ptr=fopen("C:\\SaveStruct.txt","at+"); /*en esta parte no se si lo estoy hacien bien*/
  80.   fwrite(&paciente,sizeof(paciente),1,ptr);    //intento guardar los nodos como una estructura normal
  81.   fclose(ptr);
  82.   cout<<"Operacion exitosa";
  83.   getch();
  84.  
  85. }
  86.  
  87. void IngresoDatos(){
  88.   int no;
  89.   char nombre[15];
  90. clrscr();
  91. cout<<"Ingrese no: ";cin>>no;
  92.   cout<<"Ingrese nombre: ";fgets(nombre,15,stdin);
  93.   if(nombre[strlen(nombre)-1]=='\n')
  94.  
  95.   nombre[strlen(nombre)-1]='\0';
  96.   paciente.encolar(no, nombre);
  97.   getch();
  98. }
  99.  
  100. void CargarTxt(){
  101. clrscr();
  102.   cout<<"en construccion";
  103.   getch();
  104. }
  105. int main()
  106. {
  107.   cola Cola1;
  108.   cola Cola2;
  109.  
  110.   int contador=0;
  111.   int num=0;
  112.   int no;
  113.   char nombre[15];
  114.   cola call;
  115.   do{
  116.   clrscr();
  117.      cout<<"\n1. Ingresar datos \n";
  118.      cout<<"2. Mostrar cola\n";
  119.      cout<<"3. Desencolar\n" ;
  120.      cout<<"4. Guardar en txt\n";
  121.      cout<<"5. Leer txt\n";
  122.      cout<<"6. Salir";
  123.      cout<<"\n Seleccione su opcion: ";
  124.      cin>>num;
  125.      switch(num){
  126.      case 1:
  127.      cout<<"\nIngreso de datos \n";
  128.       IngresoDatos();
  129.         contador=contador+1;
  130.      break;
  131.  
  132.      case 2:
  133.      clrscr();
  134.       cout<<"Mostrar cola\n";
  135. paciente.Mostrar();
  136.       //       barajar(Cola1,Cola2);
  137.       getch();
  138.      break;
  139.  
  140.      case 3:
  141.      cout<<"desencolando";
  142.      paciente.desencolar();
  143.      getch();
  144.      break;
  145.  
  146.      case 4:
  147.      cout<<"Guardando";
  148.      paciente.Guardar(contador);
  149.      getch();
  150.      break;
  151.  
  152.      case 5:
  153.      cout<<"cargando";
  154.      CargarTxt();
  155.      }
  156.   }while(num!=6);
  157.  
  158. }//encola y desencola correcta el problema guardar esa cola en txt y despues cargarla
  159.  
160  Programación / Programación C/C++ / Re: problemas con concatenar cadenas en: 15 Abril 2014, 15:53 pm
te agradezco, porque lo del fin de cadena lo habia dejado pasar por alto
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [16] 17
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines