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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


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

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Problema en C++ al leer archivo .txt
« en: 19 Junio 2011, 21:15 pm »

Hola, tengo un problema al leer un archivo de texto en c++, el programa que utilizo es el codeblocks.
 El programa debe leer un archivo de texto que contenga el siguiente tipo de líneas:

Motor 1-izquierda-Velocidad 50%
Motor 2-derecha  -Velocidad 50%
Motor 1-izquierda-Velocidad 50%.

Al cargarlo debe tomar en tres variables distintas el número de motor, el sentido y la velocidad.


Este es el programa: 

Código
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.    ifstream lector;
  9.    string motor[20];
  10.    string velocidad[20];
  11.    string sentido[20];
  12.    string linea;
  13.    int i;
  14.  
  15.  
  16.  
  17.    lector.open ("Modo Automatico.txt");
  18.  
  19.    if (lector.is_open()) {
  20.  
  21.        while(!lector.eof()) {
  22.  
  23.            getline(lector,linea);
  24.  
  25.            if (linea.length() >=10) {
  26.                cout<<linea;
  27.                motor[i]=(linea.substr (6,1));
  28.                sentido[i]=(linea.substr (8,9));
  29.                velocidad[i]=(linea.substr (18,13));
  30.  
  31.                }
  32.            else {
  33.  
  34.                cout<<"el archivo esta mal grabado"<<endl;
  35.                }
  36.  
  37.            cout<<motor[i]<<sentido[i]<<velocidad[i]<<endl;
  38.            i++;
  39.  
  40.        }
  41.  
  42.  
  43.  
  44.    }
  45.  
  46.  
  47.  
  48.  
  49.  
  50. return 0;
  51. }

El archivo Modo Automatico.txt, esta guardado en la carpeta del proyecto.

Cuando construyo y compilo el programa, el codeblocks no detecta ningún error.
Pero cuando lo ejecuto ocurre lo siguiente:




http://kn3.net/161857EE987JPG.html

http://kn3.net/05CD7DC5055JPG.html
http://kn3.net/1767082208AJPG.html
http://kn3.net/12A6FE1D57AJPG.html



Bueno desde ya muchas gracias. :)



En línea

Danyel_Casvill

Desconectado Desconectado

Mensajes: 113


adada


Ver Perfil
Re: Problema en C++ al leer archivo .txt
« Respuesta #1 en: 19 Junio 2011, 21:45 pm »

Hola, mira te falta la librería <string> y creo deberías cambiar esto
Código
  1. lector.open ("Modo Automatico.txt");

Por esto
Código
  1. ofstream lector("Modo Automatico.txt");
Y eliminar esto
Código
  1. ifstream lector;
Bueno y tienes mas errores pero dejemos que alguien mas te los diga xD


En línea

adada
javier_SL

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: Problema en C++ al leer archivo .txt
« Respuesta #2 en: 20 Junio 2011, 00:21 am »

gracias ahora voy a ver que onda
En línea

Acermax

Desconectado Desconectado

Mensajes: 55


Ver Perfil
Re: Problema en C++ al leer archivo .txt
« Respuesta #3 en: 20 Junio 2011, 01:38 am »

Eso que dices dany, no es cierto.
El fichero lo quiere como lectura, asi que debe ser ofstream. ifstream se usa para escritura, y no es el caso. Por otro lado usar la opción open también es válido, igual que usarla en el constructor.

El problema, probablemente, es que no está inicializada la variable 'i'.
En línea

fantasma306

Desconectado Desconectado

Mensajes: 28



Ver Perfil
Re: Problema en C++ al leer archivo .txt
« Respuesta #4 en: 20 Junio 2011, 02:03 am »

Eso que dices dany, no es cierto.
El fichero lo quiere como lectura, asi que debe ser ofstream. ifstream se usa para escritura, y no es el caso.

ifstream sirve para leer de un archivo (y es exactamente lo que quiere)
ofstream sirve para escribir en un archivo.

El problema, probablemente, es que no está inicializada la variable 'i'.
Esa es la solucion .
En línea

Es mejor callar y que piensen que eres idiota a hablar y demostrarlo.
Acermax

Desconectado Desconectado

Mensajes: 55


Ver Perfil
Re: Problema en C++ al leer archivo .txt
« Respuesta #5 en: 20 Junio 2011, 02:32 am »

Si, quería corregir a dany y al final escribí lo mismo que él, lo que tienen las prisas xD. Pero exactamente eso, ifstream es la lectura, y es lo que tiene bien, poner ofstream es lo que no tendría sentido.
En línea

kiriost

Desconectado Desconectado

Mensajes: 58


www.godsys.com.ar Hacking y Programación


Ver Perfil WWW
Re: Problema en C++ al leer archivo .txt
« Respuesta #6 en: 20 Junio 2011, 03:27 am »

Te recomiendo usar split para separar las variables:
http://www.google.com.ar/#hl=es-419&source=hp&q=c%2B%2B+string+split&oq=c%2B%2B+string+split&aq=f&aqi=g1&aql=&gs_sm=e&gs_upl=432l2434l0l16l11l0l2l2l0l401l2029l2-2.3.1l6&bav=on.2,or.r_gc.r_pw.&fp=72eab2ba1b785398&biw=1022&bih=663
En línea

http://www.godsys.com.ar > Programación. Hacking y Cracking. Sistemas. Desarrollo Web.
Java, C/C++, PHP, Python, Perl, HTML, Game-Hacking, Defacing, Desarrollo Web, GNU/Linux, y más
javier_SL

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: Problema en C++ al leer archivo .txt
« Respuesta #7 en: 20 Junio 2011, 16:46 pm »

lo que hice fue definir la variable i = 0, y el error ya no persiste.

kiriost , que es eso de separar las variables?.

muchas gracias a todos
En línea

Danyel_Casvill

Desconectado Desconectado

Mensajes: 113


adada


Ver Perfil
Re: Problema en C++ al leer archivo .txt
« Respuesta #8 en: 20 Junio 2011, 17:00 pm »

Por otro lado usar la opción open también es válido, igual que usarla en el constructor.

¿Para esto no es necesaria la libreria stdio?
En línea

adada
Acermax

Desconectado Desconectado

Mensajes: 55


Ver Perfil
Re: Problema en C++ al leer archivo .txt
« Respuesta #9 en: 20 Junio 2011, 17:36 pm »

No, todo pertenece a la librería fstream
http://www.cplusplus.com/reference/iostream/fstream/

Un saludo.
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema Al leer Archivo En C
Programación C/C++
ZedGe 3 6,094 Último mensaje 22 Enero 2012, 11:27 am
por Xandrete
Problema al leer archivo en Java
Java
thekill01 1 2,527 Último mensaje 27 Mayo 2012, 03:02 am
por [Case]
Problema al leer un archivo binario en C
Programación C/C++
the_jocker 5 5,035 Último mensaje 13 Agosto 2012, 01:37 am
por CSQCasimiro
problema con leer e interpretar txt
Programación C/C++
arthu16 3 2,366 Último mensaje 12 Septiembre 2013, 18:50 pm
por eferion
problema al leer gauss desde un archivo
Programación C/C++
Idmus 1 1,819 Último mensaje 14 Noviembre 2013, 19:36 pm
por Idmus
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines