Ayuda - Guardar un Arreglo (Vector) dentro de un Archivo TxT

Iniciado por alejandrosevenfold, 1 Septiembre 2012, 04:16 AM

0 Miembros y 1 Visitante están viendo este tema.

alejandrosevenfold

muy buen dia

mi problema es el siguiente:

estoy realizando un programa en el entorno gráfico de
borland C (en DevC++ con WinBgim instalado) y mi problema
viene a la hora de guardar un arreglo de números dentro de un
archivo de texto

El que del método que estoy utilizando
simplemente guarda todo en una misma linea y a la hora
de querer utilizar las variables de dicho arreglo e intentar
regresarlas a otro arreglo para utilizarlas dentro de operaciones
matemáticas, estas regresan de manera errónea
(solo tomando la primera linea de numeros y dejando el resto vacio)

el codigo es el siguiente:

fstream dataarch;
    dataarch.open("estadistica.txt", ios::out);
   
    for(i=0;i<n1;i++){                                                     
    dataarch<<x[i];
    }
    dataarch.close();


y el metodo que utilizo para volver a guardarlas al arreglo es este:

fstream dataarch;
dataarch.open("estadistica.txt", ios::in);
   
    for(i=0;i<n1;i++){                                                     
    dataarch>>i[x];
    }
    dataarch.close();


Desearía por favor una respuesta a este inconveniente
Gracias de Antemano



Stakewinner00

te dejo un link::http://www.elrincondelc.com/nuevorincon/foros/viewtopic.php?p=49865&sid=260bf507159007f534734f81e7b8da5f

HAce poco estuve googleando y cree algo similar pero ya no me acuerdo de como era en todo caso busca por google.

rir3760

Cita de: alejandrosevenfold en  1 Septiembre 2012, 04:16 AMel codigo es el siguiente:

fstream dataarch;
    dataarch.open("estadistica.txt", ios::out);
   
    for(i=0;i<n1;i++){                                                     
    dataarch<<x[i];
    }
    dataarch.close();

El problema es no separar los números. Supongamos que tu array contiene diez valores (0 a 9) al imprimirlos en el archivo se guardan así:
Código (cpp) [Seleccionar]
0123456789
Cuando tratas de leerlos surge el problema de como interpretar esa linea ya que el numero puede ser 0, 01, 0123, etc. En el caso del operador ">>" este se "traga" todos los caracteres que pueda (para en base a ellos generar el numero).

Para evitarlo basta con separarlos con algún carácter como el espacio, tabulador, etc.

Un saludo
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