Foros del Web » Programación para mayores de 30 ;) » C/C++ »

C++, no logro hacer funcionar ofstream/ifstream!

Estas en el tema de C++, no logro hacer funcionar ofstream/ifstream! en el foro de C/C++ en Foros del Web. Hola chicos! Quisiera que me ayudaran con los flujos de entrada y salida de archivos. Pasa que el programa me guarda las cosas, pero al ...
  #1 (permalink)  
Antiguo 05/12/2015, 20:59
 
Fecha de Ingreso: diciembre-2015
Ubicación: México
Mensajes: 1
Antigüedad: 9 años
Puntos: 0
Pregunta C++, no logro hacer funcionar ofstream/ifstream!

Hola chicos! Quisiera que me ayudaran con los flujos de entrada y salida de archivos.
Pasa que el programa me guarda las cosas, pero al momento de volver a iniciar el programa las borra, la verdad no sé que estoy haciendo mal, llevo menos de 2 meses aprendiendo este lenguaje..

Aqui está la base del programa

Código C++:
Ver original
  1. // Seccion Declaracion de Variables GLOBALES
  2.  
  3. struct T_clientes{
  4.  
  5.     int clave;
  6.     char direccion[30];
  7.     char e_mail[30];
  8.     int telefono;
  9.     char nombre[30];
  10.  
  11. };
  12.  
  13. T_clientes datos_clientes[500];
  14. int contador_clientes = 0;
  15.  
  16. struct T_catalogo {
  17.  
  18.     char director[30];
  19.     char nombre_peli[100];
  20.     char genero_peli[30];
  21. };
  22.  
  23. T_catalogo datos_peliculas[500];
  24.  
  25. int contador_peliculas;
  26.  
  27. struct T_prestamos {
  28.     char    fecha_prestamo[30];
  29.     int     cliente_prestamo;
  30.     char    titulo_prestamo[100];
  31.     char    devolucion[30];
  32.  
  33. };
  34.  
  35. T_prestamos prestamo_pelicula[500];
  36. int contador_prestamo;
  37. struct T_ventas {
  38.     char fecha_venta[30];
  39.     char cliente_venta[30];
  40.     char alta_venta[30];
  41. };
  42.  
  43. T_ventas venta_pelicula[500];
  44. int contador_venta;
  45. // sECCION DE LIBRERIAS
  46.  
  47. #include <iostream>
  48. #include <fstream>
  49. using namespace std;
  50.  
  51. #include "L_clientes.h"
  52. #include "L_catalogo.h"
  53. #include "L_prestamos.h"
  54. #include "L_ventas.h"
  55.  
  56. // seccion de inicio
  57.  
  58. void main(){
  59.  
  60.     // Seccion Declaracion de Variables
  61.     int opcion = 0;
  62.     int i = 0;
  63.     // abrir un archivo Clientecitos.txt para entrada
  64.  
  65.     ifstream archent("Clientecitos.txt");
  66.     if (!archent)  cout << "NO SE PUEDE ABRIR EL ARCHIVO PARA ENTRADA. ";
  67.     else {
  68.         contador_clientes = 0;
  69.         fflush(stdin);
  70.         while (archent >> datos_clientes[contador_clientes].clave){
  71.  
  72.             archent.getline(datos_clientes[contador_clientes].nombre, 30);
  73.             archent.getline(datos_clientes[contador_clientes].direccion, 30);
  74.             archent.getline(datos_clientes[contador_clientes].e_mail, 30);
  75.             cout << datos_clientes[contador_clientes].telefono;
  76.  
  77.             contador_clientes++;
  78.         }
  79.     };
  80.  
  81.     archent.close();
  82.  
  83.     // Adquisicion de Datos
  84.     do{
  85.  
  86.         system("cls");
  87.         cout << "  BIENVENIDO!" << endl << endl;
  88.         cout << " *** MENU PRINCIPAL ***" << endl;
  89.  
  90.         cout << " 1.- Clientes " << endl;
  91.         cout << " 2.- Catalogo de Peliculas " << endl;
  92.         cout << " 3.- Prestamo de Peliculas " << endl;
  93.         cout << " 4.- Ventas " << endl;
  94.         cout << " 5.- Salir del Sistema " << endl;
  95.  
  96.         cin >> opcion;
  97.  
  98.         switch (opcion){
  99.  
  100.         case 1: { clientes(); break; }
  101.         case 2: { peliculas();
  102.             break; }
  103.         case 3: {prestamos();
  104.             break; }
  105.         case 4: { ventas();
  106.  
  107.             break; }
  108.  
  109.         }; // Fin del switch
  110.  
  111.     } while (opcion != 5);
  112.  
  113.     ofstream archsal;
  114.     archsal.open("Clientecitos.txt");
  115.     if (!archsal)
  116.         cout << "\n No se puede abrir el archivo para salida";
  117.     else {
  118.  
  119.         for (int i = 0; i < contador_clientes; i++){
  120.             archsal << datos_clientes[i].clave << endl;
  121.             archsal << datos_clientes[i].nombre << endl;
  122.             archsal << datos_clientes[i].direccion << endl;
  123.             archsal << datos_clientes[i].e_mail << endl;
  124.             archsal << datos_clientes[i].telefono << endl;
  125.  
  126.         }
  127.         archsal.close();
  128.     };
  129.  
  130.     system("pause");
  131.  
  132.  
  133. }; // fin del programa



y aqui está el modulo de clientes, de donde quiero sacar la info

Código C++:
Ver original
  1. void registro_clientes(){
  2.  
  3.     system("cls");
  4.     cout << "****REGISTRO DE CLIENTES****" << endl << endl;
  5.  
  6.     cout << "Clave del cliente: ";
  7.     cin >> datos_clientes[contador_clientes].clave;
  8.  
  9.     cout << "Nombre del cliente: ";
  10.     fflush stdin;
  11.     cin.getline(datos_clientes[contador_clientes].nombre, 30);
  12.  
  13.     cout << "Direccion del cliente: ";
  14.     fflush stdin;
  15.     cin.getline(datos_clientes[contador_clientes].direccion, 30);
  16.  
  17.     cout << "Correo electronico del cliente: ";
  18.     fflush stdin;
  19.     cin.getline(datos_clientes[contador_clientes].e_mail, 30);
  20.  
  21.     cout << "Telefono del cliente: ";
  22.     cin >> datos_clientes[contador_clientes].telefono;
  23.  
  24.     contador_clientes++;
  25.  
  26.  
  27. }; // Fin de Registro Clientes
  28.  
  29.  
  30. void busca_clientes(){
  31.  
  32.     system("cls");
  33.     int busca;
  34.     cout << " *** BUSQUEDA DE CLIENTES ***";
  35.     cout << "INGRESE LA CLAVE DEL CLIENTE:  " << endl;
  36.     cin >> busca;
  37.  
  38.     for (int i = 0; i < contador_clientes; i++){
  39.  
  40.         if (busca == datos_clientes[i].clave){
  41.  
  42.             cout << "Clave del cliente: " << datos_clientes[i].clave << endl;
  43.  
  44.             cout << "Nombre del cliente: " << datos_clientes[i].nombre << endl;
  45.  
  46.             cout << "Direccion del cliente: " << datos_clientes[i].direccion << endl;
  47.  
  48.             cout << "Correo electronico del cliente: " << datos_clientes[i].e_mail << endl;
  49.  
  50.             cout << "Telefono del cliente: " << datos_clientes[i].telefono << endl;
  51.  
  52.             system("pause");
  53.  
  54.         }; // Cierre del IF
  55.  
  56.  
  57.     }; // cierre del for
  58.  
  59.  
  60.  
  61.  
  62. }; // Fin de Busqueda de clientes
  63.  
  64.  
  65. void modif_clientes(){
  66.  
  67.     system("cls");
  68.     int opcion, busca;
  69.  
  70.     cout << " Dame la cuenta a buscar: ";
  71.     cin >> busca;
  72.  
  73.     for (int i = 0; i < contador_clientes; i++){
  74.         if (busca == datos_clientes[i].clave){
  75.  
  76.  
  77.             system("cls");
  78.             cout << " *** MENU DE MODIFICACIÓN DE CLIENTES ***" << endl << endl;
  79.             cout << " Que deseas modificar? " << endl;
  80.  
  81.             cout << " 1.- Direccion " << endl;
  82.             cout << " 2.- Telefono " << endl;
  83.             cout << " 3.- Correo Electronico " << endl;
  84.             cout << " 4.- salir" << endl;
  85.  
  86.             cin >> opcion;
  87.  
  88.             switch (opcion){
  89.  
  90.             case 1: {cout << " Direccion Anterior: " << datos_clientes[i].direccion << " Nueva Direccion: "; fflush stdin;
  91.                 cin.getline(datos_clientes[i].direccion, 30); break; }
  92.             case 2: {cout << " Telefono Anterior " << datos_clientes[i].telefono << " Nuevo Telefono: "; cin >> datos_clientes[i].telefono; break; }
  93.             case 3: {cout << " Correo Electronico Anterior: " << datos_clientes[i].e_mail << " Nuevo Correo Electronico:  ";
  94.                 fflush stdin; cin.getline(datos_clientes[i].e_mail, 30); break; }
  95.  
  96.             };
  97.  
  98.             system("pause");
  99.  
  100.         }//fin del if
  101.     }//fin del for
  102. }; // Fin de modificacion
  103.  
  104.  
  105.  
  106. void baja_clientes(){
  107.  
  108.     system("cls");
  109.  
  110.     int i = 0, j = 0, busca_baja;
  111.  
  112.     cout << endl << "***MENU DE BAJA DE CLIENTES ***" << endl;
  113.  
  114.     cout << "Ingresa la clave del cliente: " << endl;
  115.     cin >> busca_baja;
  116.  
  117.  
  118.     for (i = 0; i < contador_clientes; i++){
  119.         if (busca_baja == datos_clientes[i].clave){
  120.             for (j = i; j < contador_clientes; j++){
  121.                 datos_clientes[j] = datos_clientes[j++];
  122.  
  123.  
  124.             };
  125.             contador_clientes--;
  126.  
  127.  
  128.  
  129.             cout << endl << "EL REGISTRO SE HA ELIMINADO";
  130.  
  131.             system("PAUSE");
  132.         };//FIN DE IF
  133.     }; //FIN DE FOR
  134.  
  135.  
  136. }; // FIN BAJA DE CLIENTES
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143. void clientes(){
  144.     int opcion;
  145.     cout << " estoy en el modulo de clientes" << endl;
  146.  
  147.  
  148.     do{
  149.  
  150.         system("cls");
  151.         cout << " ****** MENU CLIENTES *****" << endl;
  152.  
  153.         cout << " 1.- Registro de Clientes " << endl;
  154.         cout << " 2.- Modificacion de Clientes " << endl;
  155.         cout << " 3.- Baja de Clientes " << endl;
  156.         cout << " 4.- Busqueda de Clientes " << endl;
  157.  
  158.         cout << " 5.- Salir del Menu de Clientes " << endl;
  159.  
  160.         cin >> opcion;
  161.  
  162.         switch (opcion){
  163.  
  164.         case 1: { registro_clientes(); break; }
  165.         case 2: { modif_clientes(); break; }
  166.         case 3: { baja_clientes();
  167.             break; }
  168.         case 4: {busca_clientes();
  169.             break; }
  170.  
  171.         }; // Fin del switch
  172.  
  173.     } while (opcion != 5);
  174.  
  175.  
  176.  
  177.     system("pause");
  178.  
  179.  
  180.  
  181. }; // Modulo de Clientes



mil Gracias!!

Etiquetas: fstream, libreria
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:37.