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]


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ayuda
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda  (Leído 2,969 veces)
Fatmf44

Desconectado Desconectado

Mensajes: 3


Ver Perfil
ayuda
« en: 17 Junio 2010, 07:26 am »

hola

bueno soy un novato en esto de programacion y quisiera un poco de ayuda o me brinden ideas de como hacer este pequeño trabajo lo 1ro q deseo saber es como crear un archivo de texto en c++ luego q me permita agregar, guardar y eliminar cosas de ese archivo de texto todo en c++

saludos

PD: gracias de antemano a la ayuda brindada


En línea

Gallu

Desconectado Desconectado

Mensajes: 247



Ver Perfil
Re: ayuda
« Respuesta #1 en: 17 Junio 2010, 08:05 am »

Si no pones código y haces preguntas concretas no creo que te vaya a ayudar nadie , lo que tu preguntas lo puedes averiguar tranquilamente de los libros o haciendo una busqueda en google . :-X


En línea

Nadie alcanza la meta con un solo intento, ni perfecciona la vida con una sola rectificación, ni alcanza altura con un solo vuelo.
nicolas_cof


Desconectado Desconectado

Mensajes: 348


Into the Wild


Ver Perfil WWW
Re: ayuda
« Respuesta #2 en: 17 Junio 2010, 10:00 am »

Fatmf44, te recomiento leer las Reglas del subforo

Links...

Libros: http://foro.elhacker.net/programacion_cc/librospapers_c_and_c-t296234.0.html
Ficheros C/C++: http://c.conclase.net/ficheros/index.php

Salu10.
En línea

Fatmf44

Desconectado Desconectado

Mensajes: 3


Ver Perfil
CODIGO
« Respuesta #3 en: 17 Junio 2010, 11:39 am »

hola mil disculpas bueno el codigo q tengo es este:
Código
  1. #include <iostream>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5. #include <limits.h>
  6. #define MAXSTR 0xFF
  7.  
  8. using namespace std;
  9.  
  10. typedef struct ClaseAlumno {
  11.    int matricula;
  12.    char* nombre;
  13. } Alumno;
  14.  
  15. int comparar_alumno (const void *alumno1, const void *alumno2);
  16. void imprimir_alumno (Alumno *alumno);
  17. Alumno* agregar_alumno (Alumno *alumnos, Alumno *alumno, int *n);
  18. char* leer_linea    (const char *mensaje);
  19. char* leer_cadena   (const char *mensaje, char *cadena);
  20. int   leer_entero   (const char *mensaje, int menor, int mayor);
  21. float leer_real     (const char *mensaje);
  22. char  leer_caracter (const char *mensaje);
  23. int   leer_campo (FILE *archivo, char *cadena);
  24.  
  25. int main ()
  26. {
  27.    Alumno alumno, *alumnos = NULL, *p;
  28.    int opcion, n=0, i;
  29.    char cadena[MAXSTR], *ruta = "D:\\alumnos.txt";
  30.    FILE *archivo;
  31.    archivo = fopen (ruta, "r");
  32.    if (archivo!=NULL)
  33.    {
  34.        while (leer_campo (archivo, cadena))
  35.        {
  36.            alumno.matricula = atoi (cadena);
  37.            leer_campo (archivo, cadena);
  38.            alumno.nombre = strdup (cadena);
  39.            alumnos = agregar_alumno (alumnos, &alumno, &n);
  40.        }
  41.        fclose (archivo);
  42.    }
  43.    do {
  44.        system ("cls");
  45.        cout<<endl
  46. <<"MENU"<<endl
  47. <<"1.- Nuevo"<<endl
  48. <<"2.- Salir"<<endl
  49. <<endl;
  50.  
  51.        opcion = leer_entero ("Seleccione una opcion: ", 1, 2);
  52.  
  53.        if (opcion < 2)
  54.        {
  55.            alumno.matricula = leer_entero ("Ingrese el matricula del alumno: ", 0, INT_MAX);
  56.            p = n==0? NULL: (Alumno*) bsearch (&alumno, alumnos, n, sizeof (Alumno), comparar_alumno);
  57.            if (p!=NULL)
  58.                imprimir_alumno (p);
  59.        }
  60.        if (p!=NULL && opcion==1)
  61.            cout<<"El alumno ya existe"<<endl;
  62.        else if (p==NULL && opcion>=2 && opcion<=1)
  63.            cout<<"Alumno no encontrado"<<endl;
  64.        else switch (opcion)
  65.        {
  66.            case 1:
  67.                alumno.nombre = leer_linea ("Ingrese el nombre: ");
  68.                alumnos = agregar_alumno (alumnos, &alumno, &n);
  69.                cout<<"Registro agregado correctamente"<<endl;
  70.                break;
  71.        }
  72.        if (opcion<2 && opcion>=1)
  73.        {
  74.  
  75.            system ("pause");
  76.        }
  77.    } while (opcion!=2);
  78.    archivo = fopen (ruta, "w");
  79.    if (archivo!=NULL)
  80.    {
  81.        for (i=0; i<n; i++)
  82.            fprintf (archivo, "%d,%s\n", alumnos[i].matricula, alumnos[i].nombre);
  83.        fclose (archivo);
  84.    }
  85.    return EXIT_SUCCESS;
  86. }
  87.  
  88. int comparar_alumno (const void *alumno1, const void *alumno2)
  89. {
  90.    return ((Alumno*)alumno1)->matricula - ((Alumno*)alumno2)->matricula;
  91. }
  92.  
  93. void imprimir_alumno (Alumno *alumno)
  94. {
  95.     printf ("matricula: %d\n", alumno->matricula);
  96. printf ("nombre   : %s\n", alumno->nombre);
  97. }
  98.  
  99. Alumno* agregar_alumno (Alumno *alumnos, Alumno *alumno, int *n)
  100. {
  101.    *n = *n + 1;
  102.    alumnos = (Alumno*) realloc (alumnos, sizeof (Alumno)*(*n));
  103.    memcpy (&alumnos[(*n)-1], alumno, sizeof (Alumno));
  104.    qsort (alumnos, *n, sizeof (Alumno), comparar_alumno);
  105.    return alumnos;
  106. }
  107.  
  108. char *leer_linea (const char *mensaje)
  109. {
  110.    char linea[MAXSTR];
  111.    leer_cadena (mensaje, linea);
  112.    return strdup (linea);
  113. }
  114.  
  115. char* leer_cadena (const char *mensaje, char *cadena)
  116. {
  117.    char *salto;
  118.    cout<<mensaje;
  119.    fgets (cadena, MAXSTR, stdin);
  120.    salto = strchr (cadena, '\n');
  121.    if (salto!=NULL)
  122.        *salto = '\0';
  123.    return cadena;
  124. }
  125.  
  126. int leer_entero (const char *mensaje, int menor, int mayor)
  127. {
  128.    int valor;
  129.    do {
  130.        valor = (int) leer_real (mensaje);
  131.        if (valor<menor || valor>mayor)
  132.            cout<<"Numero no valido"<<endl;
  133.    } while (valor<menor || valor>mayor);
  134.    return valor;
  135. }
  136.  
  137. float leer_real (const char *mensaje)
  138. {
  139.    char cadena[MAXSTR];
  140.    leer_cadena (mensaje, cadena);
  141.    return atof (cadena);
  142. }
  143.  
  144. char leer_caracter (const char *mensaje)
  145. {
  146.    char linea[MAXSTR];
  147.    leer_cadena (mensaje, linea);
  148.    return linea[0];
  149. }
  150.  
  151. int leer_campo (FILE *archivo, char *cadena)
  152. {
  153.    fscanf (archivo, "%[^,\n\r]", cadena);
  154.    if (feof (archivo))
  155.        return 0;
  156.    fgetc (archivo);
  157.    return 1;
  158. }
  159.  
es un trabajo el cual me piden explicar todo el codigo hay cosas q entiendo como otras q no haber si me dan una mano ixplicando algunas partes.
hay posibilidad de que este codigo se redusca a mas y solo usando el cout o q sea mas orientado a C++

PD: sobre los menus me faltan añadir las demas opciones q son 6 ejem: editar busqueda el codigo lo hace solo q lo qite para poder probar algunas cosas

gracias de antemano

saludos
« Última modificación: 17 Junio 2010, 18:13 pm por Littlehorse » En línea

nicolas_cof


Desconectado Desconectado

Mensajes: 348


Into the Wild


Ver Perfil WWW
Re: ayuda
« Respuesta #4 en: 17 Junio 2010, 11:50 am »

Fatmf44, utiliza las etiquetas GeSHI o code para postear codigo, asi se hace mas legible...

[code=cpp]codigo fuente C++[/code]

[code]codigo fuente[/code]

Pd: no te olvides de usar el boton modificar para postear.

Salu10.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines