Autor
|
Tema: problema lectura de archivo (Leído 4,000 veces)
|
javahat
Desconectado
Mensajes: 37
|
Hola tengo el sgte código, ingreso un par de datos por ejemplo nombre y edad: raul 34 juan 12 ...y después necesito leer los datos del archivo pero no me los muestra en pantalla arroja un error. #include <stdio.h> #include <stdlib.h> struct registro{ char nombre[10]; int edad; }; int main(){ int n,i; struct registro usuario[10]; FILE *archivo; archivo =fopen("usuarios.txt","a+"); printf("Cuantos usuarios desea ingresar:"); for(i=0;i<n;i++){ scanf("%s",&usuario [i ]. nombre); fprintf(archivo ,"%s ",usuario [i ]. nombre); scanf("%d",&usuario [i ]. edad); fprintf(archivo ,"%d ",usuario [i ]. edad); } archivo =fopen("usuarios.txt","r");fscanf(archivo ,"%s %d",usuario [i ]. nombre,usuario [i ]. edad); fscanf(archivo ,"%s%d",usuario [i ]. nombre,usuario [i ]. edad); printf("Nombre:%s\n",usuario [i ]. nombre); printf("Edad:%d\n",usuario [i ]. edad); } }
|
|
|
En línea
|
|
|
|
nicolasblues86
Desconectado
Mensajes: 38
|
ya anda joya el problema era con los scanf cuando son cadenas los datos a tratar el '&' no se pone en cambio cuando es un entero si se tiene que agregar el '&'.. el programa ahora andaría aunque los scanf te van a traer problemas, mejor usa fgets con stdin.. saludos!! #include <stdio.h> #include <stdlib.h> struct registro{ char nombre[10]; int edad; }; int main(int argc, char** argv) { int n,i; struct registro usuario[10]; FILE *archivo; archivo =fopen("usuarios.txt","a+"); printf("Cuantos usuarios desea ingresar:"); for(i=0;i<n;i++) { scanf("%s",usuario [i ]. nombre); fprintf(archivo ,"%s ",usuario [i ]. nombre); scanf("%d", &usuario [i ]. edad); fprintf(archivo ,"%d ",usuario [i ]. edad); } archivo =fopen("usuarios.txt","r"); fscanf(archivo ,"%s %d",usuario [i ]. nombre,&usuario [i ]. edad); { fscanf(archivo ,"%s %d",usuario [i ]. nombre,&usuario [i ]. edad); printf("Nombre:%s\n",usuario [i ]. nombre); printf("Edad:%d\n",usuario [i ]. edad); } return 0; }
|
|
|
En línea
|
Solamente hay 10 clases de personas en el mundo los que saben leer binario y los que no
|
|
|
javahat
Desconectado
Mensajes: 37
|
Con los "&" ingreso bien los datos al archivo pero al mostrarlos se repite el segundo dato 2 veces ejemplo:
Ingresar: raul 12 pepe 34
Mostrar: pepe 34 pepe 34
tengo que hacerlo con fscanf ....
|
|
|
En línea
|
|
|
|
nicolasblues86
Desconectado
Mensajes: 38
|
Claro el problema es que cuando ya se llega a fin de archivo todavía estamos dentro del while ya que feof no mueve el puntero sino que lo hace fscanf por eso cuando llega a fin de archivo todavia tiene que imprimir lo que contiene los printf lo unico que deberias hacer es cambiar el orden de los printf ponelos arriba del fscanf y si no me equivoco ya estaria solucionado { printf("Nombre:%s\n", usuario [i ]. nombre); printf("Edad:%d\n", usuario [i ]. edad); fscanf(archivo , "%s %d",usuario [i ]. nombre, &usuario [i ]. edad); }
Saludos !!!
|
|
|
En línea
|
Solamente hay 10 clases de personas en el mundo los que saben leer binario y los que no
|
|
|
javahat
Desconectado
Mensajes: 37
|
Gracias me sirvió mucho tu ayuda pero para tenerlo en cuenta como puedo hacerlo con fgets? me podrías explicar, estoy iniciando en esto de los archivos y estoy un poco complicado.
|
|
|
En línea
|
|
|
|
|
nicolasblues86
Desconectado
Mensajes: 38
|
por las dudas que te hallas referido a fgets para tratamiento de archivo seria muy parecido a como lo plantea AckeR sol oque suplantas stdin por el puntero FILE ejemplo: fgets (buf ,121,archivo ); pasa a la siguiente linea y la copia en el buffer { puts(buff ); //imprime lo que haya en el bufer fgets (buf ,121,archivo ); // pasa a la siguiente linea y la copia en el buffer }
otra manera podria ser. while( fgets (buf ,121,archivo )) { puts(buff ); //imprime lo que haya en el bufer }
Salduos
|
|
|
En línea
|
Solamente hay 10 clases de personas en el mundo los que saben leer binario y los que no
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[Ayuda]Lectura de Archivo txt
PHP
|
rolly21102
|
5
|
3,971
|
17 Julio 2011, 01:00 am
por WHK
|
|
|
Duda con lectura de un archivo de recursos
.NET (C#, VB.NET, ASP)
|
hackertotal22
|
2
|
5,302
|
9 Agosto 2011, 11:37 am
por hackertotal22
|
|
|
Ayuda Con Lectura Archivo en c++
Programación C/C++
|
ZedGe
|
2
|
2,689
|
23 Diciembre 2011, 20:32 pm
por ZedGe
|
|
|
Duda abriendo archivo en binario para lectura !!
.NET (C#, VB.NET, ASP)
|
TrashAmbishion
|
1
|
3,177
|
26 Octubre 2013, 21:24 pm
por Eleкtro
|
|
|
Problema con la lectura de este archivo Binario
Programación C/C++
|
ProgramadorAnonimo
|
6
|
5,087
|
29 Septiembre 2021, 12:29 pm
por Serapis
|
|