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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [Solucionado]Problema con archivo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Solucionado]Problema con archivo  (Leído 1,490 veces)
nicolasblues86

Desconectado Desconectado

Mensajes: 38



Ver Perfil
[Solucionado]Problema con archivo
« en: 15 Mayo 2010, 06:27 am »

Hola gente bueno les cuento que tengo un incomeniente con un programa que genera un archivo de texto y pone datos en él hasta ahí va perfecto
el problema es cunado quiero tomar esos archivos e imprimirlos en pantalla
no se si estoy tomando mal los datos del archivo o estoy ingresando mal los datos en el archivo, pero el tema es que me termina imprimiendo dos veces la ultima linea del archivo...


Bueno al final era un problema con como imprimía en pantalla lo que havia en el archivo de texto   

Código:


#include <stdio.h>
#include <string.h>
#include <stdlib.h>


typedef struct {
char *nm;
int dia;
int ms;
int aa;
char mes[11];
}Persona;



void entrada (Persona* p);
char* mes_asci (int n);


int main(int argc, char** argv)
{
FILE *pff;
char fn[] = "Personas.DAT";
char buf[121];

if ( (pff = fopen(fn,"a+t")) == NULL )
{
puts ("Error al abrir archivo");
exit (-1);
}

//while (!feof(pff))
        while (fgets (buf,121,pff))
       {

printf ("%s \n\n",buf);
 
}



Persona pt;

entrada (&pt);
fprintf(pff,"%s %d-%d-%d %s\n", pt.nm, pt.dia, pt.ms, pt.aa, pt.mes);

fclose(pff);
return 0;
}



void entrada (Persona * p)
{
char bf[80];

printf ("Escriba el nombre: ");
fgets (bf,80,stdin);
if (bf[strlen(bf) - 1] == '\n' )
bf[strlen(bf)] = '\0';
p->nm = (char*) malloc ((strlen (bf) + 1) * sizeof(char));
strcpy (p->nm, bf);
do
{
printf ("introduzca dia mes año (dd mm aaaa) : ");
fgets (bf, 80, stdin);
if (bf[strlen(bf) - 1] == '\n' )
bf[strlen(bf)] = '\0';
sscanf (bf,"%d %d %d%*c", &p->dia, &p->ms, &p->aa );
printf ("\n %s\n", mes_asci(p->ms));

} while  ( ( mes_asci(p->ms) == "Mes eroneo") || (p->dia > 31 || p->dia < 1 ) );

strcpy(p->mes, mes_asci(p->ms));

}

char* mes_asci (int n)

{
static char *mes[12] = {
"Enero", "Febrero", "Marzo", "Abril",
"Mayo", "Junio", "Julio", "Agosto", "Septiembre",
"Octubre", "Noviembre", "Diciembre" };

 
if (n >= 1 && n <= 12)
return mes[n-1];
else
return "Mes eroneo";


}



 

 


« Última modificación: 15 Mayo 2010, 20:35 pm por nicolasblues86 » En línea

Solamente hay 10 clases de personas en el mundo los que saben leer binario y los que no
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema con Archivo amtlib.dll - Solucionado
Software
Zorronde 5 1,282 Último mensaje 30 Octubre 2014, 19:46 pm
por Zorronde
Implementar guardado de archivo (solucionado)
Java
do-while1 4 2,307 Último mensaje 24 Febrero 2015, 03:13 am
por Usuario Invitado
[C++] Crear archivo .txt [SOLUCIONADO]
Programación C/C++
DeMoNcRaZy 8 8,015 Último mensaje 14 Mayo 2015, 21:23 pm
por DeMoNcRaZy
Problema al escribir archivo - 0D le precede a 0A (Solucionado)
Programación C/C++
AlbertoBSD 2 2,034 Último mensaje 9 Mayo 2016, 13:11 pm
por AlbertoBSD
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines