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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Programa con Archivo ".txt" y un problema a la hora de Salida de Datos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Programa con Archivo ".txt" y un problema a la hora de Salida de Datos  (Leído 2,731 veces)
Black Lotus

Desconectado Desconectado

Mensajes: 26


Ver Perfil
Programa con Archivo ".txt" y un problema a la hora de Salida de Datos
« en: 14 Noviembre 2013, 07:48 am »

Hola a todos solo quería contarles mi caso... Nos dejaron un programa de Automatas, trata de que el usuario ingrese una tabla de transición y que en ella muestre los estados que se desea incluir en la cadena final(la llamo así porque no me acuerdo de él nombre real que debería llevar  :¬¬ :¬¬  :¬¬ ) y de paso me tiene que guardar todas las cadenas que vaya generando el programa en un archivo ".txt"... Logro que guarde en un archivo, sin embargo a la hora de tratar de mostrar datos por pantalla me genera un error... Aca el codigo que llevo hasta ahora... el codigo lo he tratado de hacer yo sin ayuda de ninguna pagina hasta ahora que pido me den la idea de porque me da este error y si me ayudan les agradezco...

Código
  1. include <iostream>
  2. #include <fstream>
  3. #include <string>
  4.  
  5.  
  6. int Proceso();
  7. void Centra_Titulo();
  8. void mostrar();
  9.  
  10.  
  11. int Proceso()
  12. {
  13. int lim;
  14. int contador;
  15.   int di[100];
  16.   int df[100];
  17.  
  18.   ofstream abrir_datos;
  19.   abrir_datos.open("Transiciones.txt", ios::out|ios::app);
  20.   if(abrir_datos.fail())
  21.   {
  22.   cerr>"Error Al Crear Archivo";
  23.   cin.get();
  24. cin.get();
  25.   }
  26.   else
  27.   {
  28.  
  29. cout<<"Cuantos estados desea ingresar: ";
  30.   cin>>lim;
  31.  
  32.   for(contador=0; contador<lim; contador++)
  33.   {
  34.         cout<<"Ingrese los datos correspondientes al Estado No. "<<(contador+1)<<" ..."<<endl;
  35.         cout<<"q";cin>>di[contador];
  36.         cout<<"q";cin>>df[contador];
  37.         abrir_datos<<di[contador]<<" "<<df[contador]<<endl;
  38.  
  39.   }
  40.  
  41.  
  42.   cout<<"La expresion de transiciones es: "<<endl;
  43.   cout<<"{ ";
  44.     for(contador=0; contador<lim; contador++)
  45.   {
  46.         cout<<" q";cout<<di[contador]<<" ==>";
  47.         cout<<" q";cout<<df[contador];
  48.         if(contador<lim-1)
  49.         {
  50.         cout<<" | ";
  51.         }
  52.  
  53.   }
  54.         cout<<" }";
  55.    abrir_datos.close();
  56.    }
  57. }
  58.  
  59. void mostrar()
  60. {
  61. int lim;
  62.  
  63. int contador;
  64.   int di[100];
  65.   int df[100];
  66.  
  67.   ifstream abrir_datos;
  68.   abrir_datos.open("Transiciones.txt",ios::in|ios::app);
  69.  
  70.   abrir_datos>>di[contador];
  71.   while (!abrir_datos.eof())
  72.   {
  73.   abrir_datos>>df[contador];
  74.   for(contador=0; contador<lim; contador++)
  75.   {
  76.         cout<<" q";cout<<di[contador]<<" ==>";
  77.         cout<<" q";cout<<df[contador];
  78.         if(contador<lim-1)
  79.         {
  80.         cout<<" | ";
  81.         }
  82.  
  83.   }
  84.         cout<<" }";
  85.         abrir_datos>>di[contador];
  86.    }
  87.    abrir_datos.close();
  88.  
  89. }
  90.  
  91.  
  92.  
  93. void Centra_Titulo()
  94. {
  95.   char  titulo[100]= "Bienvenido al Programa De Automatas Deterministas" ;
  96.  
  97.   int pro = strlen(titulo);
  98.   for (int i=1; i<(40-(pro/2)); i++)
  99.   cout<<" ";
  100.   cout<<titulo;
  101. }
  102.  
  103.  
  104. int main ()
  105. {
  106.   int cantidad;
  107.   int opc;
  108.   Centra_Titulo();
  109.      cout<<endl<<endl;
  110. cout<<"1. Ingreso de Datos"<<endl;
  111. cout<<"2. Mostrar todas las Expresiones desarrolladas"<<endl;;
  112. cout<<"3. Salir"<<endl;
  113. cout<<"Que desea hacer: ";
  114.      cin>>opc;
  115.  
  116.      switch(opc)
  117.      {
  118.      case 1:
  119.      Proceso();
  120.      break;
  121.  
  122.      case 2:
  123.      mostrar();
  124.      break;
  125.      }
  126.  
  127. cin.get();
  128. cin.get();
  129. return 0;
  130. }
  131.  

Pienso que el problema es esta linea de código de la funcion "mostrar":
Código
  1.   for(contador=0; contador<lim; contador++)
  2.   {
debido a que allí no ingreso el valor de la variable "lim" como en la funcion proceso, pero igual puede que no sea allí el problema y me lo este imaginando....


PD: Estoy trabajando en Borland C++


En línea

BlackM4ster


Desconectado Desconectado

Mensajes: 499


Error, el teclado no funciona. Pulse F1 para continuar


Ver Perfil WWW
Re: Programa con Archivo ".txt" y un problema a la hora de Salida de Datos
« Respuesta #1 en: 14 Noviembre 2013, 12:10 pm »

Antes de hacer nada, tienes que dar valor a
Código
  1. int lim;
  2. int di[100];
  3. int df[100];

Para ello, tienes que hacer un for, que vaya leyendo lo que hay entre espacio y espacio de los archivos, y vaya almacenandolo. Un contador te ayudará a saber cuantos datos tiene que leer (lim)

Suerte


En línea

- Pásate por mi web -
https://codeisc.com
rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Programa con Archivo ".txt" y un problema a la hora de Salida de Datos
« Respuesta #2 en: 14 Noviembre 2013, 18:39 pm »

sin embargo a la hora de tratar de mostrar datos por pantalla me genera un error...
Si solo quieres mostrar las lineas en el archivo puedes utilizar la función getline. Por ejemplo:
Código
  1. void mostrar()
  2. {
  3.   ifstream abrir_datos;
  4.   char linea[4096]; // O algun otro valor apropiado
  5.  
  6.   abrir_datos.open("Transiciones.txt",ios::in|ios::app);
  7.  
  8.   while (abrir_datos.getline(linea, 4096))
  9.      cout << linea << endl;
  10.  
  11.   abrir_datos.close();
  12. }

Una forma mejor es utilizando la clase string y std::getline.

Por ultimo deberías de cambiar de compilador ya que los Borland, para ser diplomático, no tienen una buena reputación.

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Black Lotus

Desconectado Desconectado

Mensajes: 26


Ver Perfil
Re: Programa con Archivo ".txt" y un problema a la hora de Salida de Datos
« Respuesta #3 en: 15 Noviembre 2013, 04:11 am »

Por ultimo deberías de cambiar de compilador ya que los Borland, para ser diplomático, no tienen una buena reputación.


Me recomiendas algun compilador de c++?? que tenga una buena reputación  ;D ;D
En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Programa con Archivo ".txt" y un problema a la hora de Salida de Datos
« Respuesta #4 en: 15 Noviembre 2013, 07:06 am »

Dos de calidad son g++ (parte de GCC y disponible para MS Windows y Linux) y Visual C++ de Microsoft.

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

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