Dev - C++ - Ayuda con manejo de ficheros en c++

 
Vista:
sin imagen de perfil

Ayuda con manejo de ficheros en c++

Publicado por ArashiTensei (3 intervenciones) el 22/11/2014 05:46:35
Necesito ayuda con el manejo de archivosde texto en c++

tengo muchos datos en un archivo, son puros numeros, y tienen esta estructura

***********
*********
*******
*****
***
*

*
**
********

la primeras hasta el antepenultimo numero va en un arreglo , o eso pretendo, y los ultimos numeros de cada fila en otro vector, el problema es que entre los numeros hay espacios y estos no son constantes, ademas de que hay numeros de mas de 1 digito, entonces no puedo usar fgetc , y con fgets no se como separar los numeros de los espacios... agluein conoce alguna forma?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Ayuda con manejo de ficheros en c++

Publicado por Jose Manuel (30 intervenciones) el 22/11/2014 11:07:32
El C++ tiene muchas posibilidades para hacer estas cosas.

Por ejemplo, usando para leer el fichero un objeto del tipo ifstream podemos hacer un bucle que lo lea cada línea entera usando getline

Por ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <fstream>
#include <sstream>
using namespace std;
 
int main(){
    string linea;
    int numero;
    ifstream F_in;
    F_in.open("nombre_fichero.txt");
    while (getline (F_in, linea)){
        istringstream S(linea);
        while (S >> numero){
        //   ... lo que queramos hacer
        }
    }
    F_in.close();
}

Para hacerte un poco a la idea.

Uso dos "trucos", uno es el uso de objetos istringstream, que simplemente "convierte" a un string cualquiera en un "contenedor" del que puedo pedir datos como si fuera el teclado. Luego con el operador >> puedes pedir enteros, y el ignorará cualquier espacio. El Getline que uso para leer la línea del fichero, lee toda la línea del mismo, con espacios o con cualquier contenido, hasta el carácter de fin de línea.

Mira un poco estas cosas porque creo que son la solución sencilla para lo que pretendes
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Ayuda con manejo de ficheros en c++

Publicado por ArashiTensei (3 intervenciones) el 22/11/2014 17:36:32
Gracias, son el tipo de consejos que buscaba, ya que no tenía ni idea de como empezarlo, investigaré sobre lo que me comentas, saludos!.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Ayuda con manejo de ficheros en c++

Publicado por Humberto (3 intervenciones) el 23/11/2014 00:09:08
No consigo entenderlo del todo :(

Al parecer usas esto ya entra en contexto de programación orientada a objetos no? puedes almacenar la primera fila del archivo que anexo en una matriz? me serviría de ejemplo para todo lo demás porque prácticamente el único problema que tengo es pasar la información del archivo a arreglos de memoria de lo cual no entiendo nada, en internet esta todo en ingles, espero alguien me pueda ayudar.

SI lo intento de esta forma, me da la primera columna, aunque no de forma correcta

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <fstream>
#include <sstream>
 
using namespace std;
 
int main(){
    string linea;
    int numero,i=0;
    char vector[100];
    ifstream F_in;
    F_in.open("1.txt");
    while (getline (F_in, linea)){
        istringstream S(linea);
        if (S >> numero){
        	vector[i] = numero;
		}
		printf  ("%i\n",vector[i]);
		i++;
	}
    F_in.close();
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar