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

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Como hago para imprimir un struct en archivo .txt?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como hago para imprimir un struct en archivo .txt?  (Leído 4,257 veces)
alesspale

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Como hago para imprimir un struct en archivo .txt?
« en: 17 Agosto 2016, 02:58 am »

Buenas estoy haciendo un pequeño proyecto en  C y quiero imprimir el siguiente struc en un archivo
Código
  1. typedef struct clientes{
  2.    char nombres[50], Correo[50];
  3.    long cedula;
  4.    char telefono[12];
  5.    int edad,millasrecorridas, pesoEQ;
  6.    }
  7.  
  8.  
  9. cnt;


El problema es que no quiero usar fprintf, ni fputs para imprimirlo porque me ocupa demasiado código y lo veo poco eficiente . Use fwrite pero me daba muchos problemas y casi siempre  imprime basura

Alguien conoce una manera o alguna función parecida al fwrite pero sin ese inconveniente ?


« Última modificación: 17 Agosto 2016, 03:03 am por alesspale » En línea

class_OpenGL


Desconectado Desconectado

Mensajes: 437

Si usas Direct3D, no eres mi amigo :P


Ver Perfil
Re: Como hago para imprimir un struct en archivo .txt?
« Respuesta #1 en: 17 Agosto 2016, 03:26 am »

Yo creo que no se "imprime" basura. Yo creo que lo que tu ves como basura es el valor binario de los enteros, por lo que yo te aconsejo que sigas usando fwrite:

Código
  1. fwrite(&cnt, sizeof(clientes), 1, archivo);


En línea

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL
alesspale

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Como hago para imprimir un struct en archivo .txt?
« Respuesta #2 en: 17 Agosto 2016, 05:04 am »

No amigo, estoy seguro que es basura.
En línea

class_OpenGL


Desconectado Desconectado

Mensajes: 437

Si usas Direct3D, no eres mi amigo :P


Ver Perfil
Re: Como hago para imprimir un struct en archivo .txt?
« Respuesta #3 en: 17 Agosto 2016, 05:08 am »

Estás seguro de que has inicializado la estructura andes de guardarla? También ten en cuenta que la cadena tiene longitud 50, por lo que si por ejemplo la cadena es "Carlos", entonces el resto de bytes de la cadena contendrá basura. Te pongo un ejemplo con una cadena de 10 elementos. Supongamos la siguiente cadena:

Código
  1. char cadena[10] = "Cadena";

Dada la información, el arreglo cadena contiene 'C', 'a', 'd', 'e', 'n', 'a', '\0', pero, ¿qué pasa con el resto de bytes de la cadena? Pues simplemente están llenos de basura, pero eso no pasa nada, para eso está el indicador de final de cadena ('\0'). La cadena se vería así:

'C', 'a', 'd', 'e', 'n', 'a', '\0', BASURA, BASURA, BASURA

donde basura vale cualquier valor "aleatorio"
En línea

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL
alesspale

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Como hago para imprimir un struct en archivo .txt?
« Respuesta #4 en: 17 Agosto 2016, 05:58 am »

Ese es otro problema que tengo con el fwrite que no te imprime hasta el '\0' si no que toda la cadena.
Como haría para eso? por que el struct tiene que llenarlo el usuario
En línea

class_OpenGL


Desconectado Desconectado

Mensajes: 437

Si usas Direct3D, no eres mi amigo :P


Ver Perfil
Re: Como hago para imprimir un struct en archivo .txt?
« Respuesta #5 en: 17 Agosto 2016, 07:31 am »

Creo que no me has entendido, una vez pasado el caracter nulo, da igual lo que haya guardado en la cadena, pues siempre leerás desde el principio de la cadena hasta el carácter nulo, así que si se guarda 'basura', no pasa nada. Si de verdad te molesta esa basura, simplemente inicializa el arreglo con caracteres nulos, y ya después almacenas la cadena en si.
En línea

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL
AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Como hago para imprimir un struct en archivo .txt?
« Respuesta #6 en: 17 Agosto 2016, 18:39 pm »

Citar
imprime basura

Tambien puede ser problema que el archivo se abra en formato binario o no....

Y si muchos usuarios no saben que con fwrite se imprime el bloque completo de memoria que ocupa una estrucutura tenga o no basura o  este o no este correctamente llenado.

Los numero se guardan en formato binario por lo cual no se veran como "1234" sino como un  monto de bytes sin sentido (Caracteres no imprimibles en la mayoria de los casos)

Saludos!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como hago para imprimir fotogramas en Flash MX
Diseño Gráfico
leonardo2004 1 3,144 Último mensaje 28 Septiembre 2004, 04:24 am
por Azielito
Como hago para dividir un archivo de video .DAT
Multimedia
jamesaddicted 1 2,387 Último mensaje 11 Octubre 2004, 14:38 pm
por fffher
[BATCH] Como hago para que cargue un archivo txt
Scripting
goldfoly 3 3,559 Último mensaje 22 Noviembre 2009, 12:23 pm
por Darioxhcx
Como hago para comprimir o crear un archivo arc.nsa???
Foro Libre
Furanko 1 2,193 Último mensaje 15 Noviembre 2013, 17:53 pm
por desikoder
Como utilizar Struct stat
Programación C/C++
txiki481 1 2,437 Último mensaje 6 Mayo 2018, 16:59 pm
por srWhiteSkull
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines