Programación General > C/C++
Problema con Archivos
pablo_666:
Buenas Tardes
He estado estudiando Lenguaje C y me han surgido una serie de dudas con el tema de manejos de archivos, de antemano les doy las gracias por su orientacion y espero que me puedan ayudar. Las dudas son las siguientes:
Tengo problemas al leer de un archivo con la funcion fscanf() y me gustaria aclarar porque no funciona, estoy tratando de leer 3 datos simultaneos en una sola instruccion pero no me muestra ningun registro. Ya he probado con fgets y va muy bien pero quiero salir de la duda y hacerlo con fscanf(), primero miremos el archivo de texto que tengo:
EL contenido del archivo de texto esta almacenado con la extension .txt pero tambien he probado con .dat (secuencial) y no me funciona:
1 pablo 2300.00
2 german 1200.00
3 rebeca 1000.00
4 Ximena 450.00
5 Sandra 790.00
El codigo del programa es el siguiente: La escritura funciona muy bien pero la lectura no va para nada.
--- Código: C++ ---#include<stdio.h>#include<conio.h>#include<string.h>int main(){ int cuenta,opc,a=0;; char archivo[]="Clientes.txt"; char Nombre[30]; float Balance; FILE *cfptr; while(a!=1){ printf("nnESCRIBIR EN UN ARCHIVO Y LEER"); printf("n........1.Escribir............."); printf("n........2.Leer................."); printf("n........3.Salir................"); printf("nEscoja la opcion "); scanf("%d",&opc); switch(opc){ case 1:printf("nnCrear Archivo"); if((cfptr=fopen(archivo,"w"))==NULL) printf("nEl archivo no se pudo abrir"); else{ printf("nEntre la Cuenta,Nombre y Blance:n"); printf("nEntre EOF para finalzar el archivo"); printf("nDato:"); fflush(stdin); scanf("%d%s%f",&cuenta,Nombre,&Balance); while(!feof(stdin)){ fprintf(cfptr,"%d %s %.2fn",cuenta,Nombre,Balance); printf("nDato:"); fflush(stdin); scanf("%d%s%f",&cuenta,Nombre,&Balance); } getch(); fclose(cfptr); } break; case 2:printf("nnLeer Archivo"); if((cfptr=fopen(archivo,"r"))==NULL) printf("nEl archivo no se pudo abrir"); else{ printf("n%-10s%-13s%sn","Cuenta","Nombre","Balance"); fscanf(cfptr,"%d %s %f",&cuenta,Nombre,&Balance); while(!feof(cfptr)){ printf("%-10s%-13s%sn",cuenta,Nombre,Balance); fscanf(cfptr,"%d%s%f",&cuenta,Nombre,&Balance); } getch(); fclose(cfptr); } break; case 3:printf("nGracias por utilizar este programa"); getch(); a=1; break; default:printf("nCometio un error, presione tecla para continuar"); getch(); break; } } return 0;}
Espero Comentarios
De nuevo Gracias
eternity:
usa las etiquetas de codigo
pablo_666:
Muy bien eternity utilizando las etiquetas se ve mas claro el codigo, pero aun sigo con el mismo problema un saludo
m0skit0:
--- Cita de: "pablo_666" ---Muy bien eternity utilizando las etiquetas se ve mas claro el codigo, pero aun sigo con el mismo problema un saludo
--- Fin de la cita ---
Es tu obligación poner las etiquetas, de hecho. No seas tan irónico porque el que necesita ayuda eres tú, no nosotros.
--- Cita de: "pablo_666" ---esta almacenado con la extension .txt pero tambien he probado con .dat (secuencial) y no me funciona:
--- Fin de la cita ---
Primero, aclararte que la extensión que tenga el fichero no influye absolutamente en nada. Es información para que Windows sepa de qué formato tiene el fichero.
¿Has probado a especificar la ruta completa del fichero?
pablo_666:
Hola m0skit0
Disculpa si me mal interpretaste, es q realmente no sabia lo de las etiquetas, sabes probe lo q me dijiste pero me sigue sin funcionar ademas el archivo en teoria se abre ya que sino la el if que controla la apertura del archivo me imprimiria por pantalla que el archivo no se ha podido abrir , te agradezco tus nuevo comentarios Saludos!!
Navegación
[#] Página Siguiente
Ir a la versión completa