• Martes 14 de Mayo de 2024, 05:49

Autor Tema:  Cadenas De Texto Largas  (Leído 1439 veces)

fap1603

  • Miembro MUY activo
  • ***
  • Mensajes: 135
    • Ver Perfil
Cadenas De Texto Largas
« en: Lunes 31 de Mayo de 2004, 18:26 »
0
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.
Saludos,

Francisco Ayala Pinazo
Lima - Perú

Amilius

  • Miembro HIPER activo
  • ****
  • Mensajes: 665
    • Ver Perfil
Re: Cadenas De Texto Largas
« Respuesta #1 en: Lunes 31 de Mayo de 2004, 19:05 »
0
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.

nicokiki

  • Miembro MUY activo
  • ***
  • Mensajes: 298
    • Ver Perfil
Re: Cadenas De Texto Largas
« Respuesta #2 en: Lunes 31 de Mayo de 2004, 22:07 »
0
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!!!!!!!