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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  se busca solucion c++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: se busca solucion c++  (Leído 3,718 veces)
fvpg

Desconectado Desconectado

Mensajes: 12



Ver Perfil
se busca solucion c++
« en: 14 Marzo 2018, 01:56 am »

Buenas gente, llevo dias intentando solucionar el siguiente problema...
es sobre como leer datos de un archivo a una variable en c++,
usando la libreria fstream con las funciones ofstream para salida e ifstream para la entrada,
solo que cuando imprimo un archivo(salida) con una cadena con espacios todo bien,
el problema resulta cuando quiero leer esa cadena en una variable pero no puedo por los espacio y me arroja basura de la memoria, si alguien puede aportar una solucion o idea, se le agradece... , espero sus participaciones!... :)


« Última modificación: 14 Marzo 2018, 02:08 am por engel lex » En línea

srWhiteSkull


Desconectado Desconectado

Mensajes: 444



Ver Perfil WWW
Re: se busca solucion c++
« Respuesta #1 en: 14 Marzo 2018, 18:45 pm »

y la variable de que tipo es?


En línea

fvpg

Desconectado Desconectado

Mensajes: 12



Ver Perfil
Re: se busca solucion c++
« Respuesta #2 en: 16 Marzo 2018, 01:39 am »

Es de tipo string , intenté con char pero no se como leer los espacios para la variable desde el archivo..
En línea

srWhiteSkull


Desconectado Desconectado

Mensajes: 444



Ver Perfil WWW
Re: se busca solucion c++
« Respuesta #3 en: 16 Marzo 2018, 01:51 am »

Pues por eso mismo, mientras que uno es un arreglo de caracteres (char* o char[]) el string es un objeto y diseñado para trabajar con cadenas de texto. Muéstrame el código o por lo menos la parte que inicializas el proceso de lectura hasta el final.

Entiendo que intentas leer un fichero de texto plano y no un binario ni nada por el estilo.
En línea

fvpg

Desconectado Desconectado

Mensajes: 12



Ver Perfil
Re: se busca solucion c++
« Respuesta #4 en: 16 Marzo 2018, 18:02 pm »

/* VARIABLES DONDE SE DESEA GUARDAR LOS DATOS */

   string codigo;
   string nombre;
   int cant;
   
   ifstream entradaArchivo;
   
   entradaArchivo.open("archivo.txt",ios::in);
   
   entradaArchivo >> codigo;
   entradaArchivo >> nombre;
   entradaArchivo >> cant;
   
   entradaArchivo.close();

        cout << codigo << endl;
       cout << nombre << endl;
       cout << cant << endl;

/* el problema es que cuando imprimo el campo de nombres cuando lleva espacio
no lee estos espacio sino que asigna la cadena seguida del espacio a la otra variable
y al final arroja basura al mostrar el contenido de las variables */
En línea

srWhiteSkull


Desconectado Desconectado

Mensajes: 444



Ver Perfil WWW
Re: se busca solucion c++
« Respuesta #5 en: 16 Marzo 2018, 20:16 pm »

Claro, te entiendo, y encima seguro que tienes los datos separados por espacios. Pues de ser así no hay funciones de C++ que distinga a ese nivel de detalle.

Lo que si puedes hacer es tomar la solución que ofrezco  aquí, y analizar campo o columna por columna comprobando de que si se trata de un dato numérico al comienzo de la línea entonces que lo tome como código, incrementa índice de columna, si la segunda columna es de tipo texto (no es numérico) lo tome como nombre, incrementa índice, y si la siguiente columna es texto también lo concatene al nombre (e incrementa índice de columna) o de lo contrario si es numérico lo tome como cantidad (pasa a la siguiente fila y reinicia el índice de columna). Es facilísimo.

o

  entradaArchivo >> codigo;
   entradaArchivo >> nombre;
   entradaArchivo >> cant;
   // si (cant no es numerico) entonces concatena nombre+cant y hago de nuevo un..
   // ...entradaArchivo >> cant; en caso contrario nada


Suerte

« Última modificación: 16 Marzo 2018, 20:21 pm por srWhiteSkull » En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: se busca solucion c++
« Respuesta #6 en: 17 Marzo 2018, 01:39 am »

Pon una muestra del archivo de datos.
En línea

fvpg

Desconectado Desconectado

Mensajes: 12



Ver Perfil
Re: se busca solucion c++
« Respuesta #7 en: 20 Marzo 2018, 04:44 am »

YA solucionè la entrada, era con un getline(entradaArchivo,variable);

asi leo una linea con espacio, ahora tengo un nuevo problema que es la
salida, quiero hacer la salida con una linea con espacio, pero al tener espacio no me imprime abas cadenas en una sino que donde esta el espacio termina toda la linea -.-

ayuda para esta nueva problematica please...
En línea

ThunderCls


Desconectado Desconectado

Mensajes: 455


Coder | Reverser | Gamer


Ver Perfil WWW
Re: se busca solucion c++
« Respuesta #8 en: 22 Marzo 2018, 20:52 pm »

A que te refieres con que no imprime ambas cadenas? Pudieras poner el codigo que usas?
En línea

-[ "…I can only show you the door. You're the one that has to walk through it." – Morpheus (The Matrix) ]-
http://reversec0de.wordpress.com
https://github.com/ThunderCls/
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Se busca juego...
Juegos y Consolas
blackjack 1 1,831 Último mensaje 17 Mayo 2004, 20:47 pm
por theskull
Se busca: el Logo
Sugerencias y dudas sobre el Foro
Libransser 3 2,465 Último mensaje 15 Junio 2004, 04:01 am
por Libransser
Se Busca.
Foro Libre
B€T€B€ 5 2,629 Último mensaje 4 Octubre 2011, 00:03 am
por B€T€B€
El 67% de las mujeres busca amistad en Internet y el 61% de los hombres busca...
Noticias
wolfbcn 4 3,505 Último mensaje 20 Octubre 2011, 21:18 pm
por Constance
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines