SoloCodigo

Programación General => C/C++ => Visual C++ => Mensaje iniciado por: fap1603 en Lunes 31 de Mayo de 2004, 18:26

Título: Cadenas De Texto Largas
Publicado por: fap1603 en Lunes 31 de Mayo de 2004, 18:26
Buenas A todos, estoy usando Visual C++, sucede que estoy haciendo un programa que lee un fichero de texto en el cual hay una frase con espacios, por ejemplo:
        ESTA ES UNA PRUEBA DE LECTURA DE DATOS

utilizo fscan y redimenciono la variable de texto con calloc, por ejemplo:

texto=(char*)calloc((atribs-1) * 12,(atribs-1) * 12);

donde atribs =  al numero de bytes + 1, por eso lo resto menos uno, 12 =  al grupo de bytes para escribir en el fichero binario; pero cuando lo escribe en el binario me salen las palabras separadas por un espacio que es = al largo de la palabra +  el resto de los bytes en espacios : ESTA        .... en espacios, luego viene la siguiente palabra con las mismas caracteristicas. NO entiendo como debo hacer para que lea toda la frase y me la escriba en el fichero binario en una sola linea sin ese problema.

Muchas gracias por la respuesta.
Título: Re: Cadenas De Texto Largas
Publicado por: Amilius en Lunes 31 de Mayo de 2004, 19:05
Oo

Vaya que te esfuerzas en escribir preguntas claras...  :rolleyes:

El "maravilloso" visual C++, en manos equivocadas capaz de convertir el más simple de los problemas en toda una pesadilla.... ¿Realmente creen que un programador novato podrá crear un programa eficiente en memória y cpu, sin contar con los bugs,  sólo por usar el "visual C++"? El C++ no es para aprender programación, a menos que seas un sádico para enseñarlo a principiantes de programación. Pero el mundo está lleno de sádicos y masoquistas.
Título: Re: Cadenas De Texto Largas
Publicado por: nicokiki en Lunes 31 de Mayo de 2004, 22:07
Hola!!!!!

Si queres leer una linea entera, usa fgets() q lee hasta un \n o un \r\n en UNIX (creo q era asi). Para recibir toda esa informacion, usa un char* y listo o un string de la STL. Luego, para separar palabras deberas tener en cuenta los espacios, los signos de puntuacion y demas.
Recorda q el \0 lo tendras al fin de la cadena y no a fin de cada palabra. Es por eso q tenes q parser la cadena levantada del archivo.

Salu2!!!!!!!