• Miércoles 15 de Abril de 2026, 01:49

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - pablo_666

Páginas: [1]
1
C/C++ / Problema con Archivos
« en: Lunes 4 de Mayo de 2009, 03:13 »
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++
  1. #include<stdio.h>
  2. #include<conio.h>
  3. #include<string.h>
  4. int main(){
  5.    int cuenta,opc,a=0;;
  6.    char archivo[]="Clientes.txt";
  7.    char Nombre[30];
  8.    float Balance;
  9.    FILE *cfptr;
  10.    while(a!=1){
  11.       printf("nnESCRIBIR EN UN ARCHIVO Y LEER");
  12.       printf("n........1.Escribir.............");
  13.       printf("n........2.Leer.................");
  14.       printf("n........3.Salir................");
  15.       printf("nEscoja la opcion ");
  16.       scanf("%d",&opc);
  17.       switch(opc){
  18.          case 1:printf("nnCrear Archivo");
  19.                 if((cfptr=fopen(archivo,"w"))==NULL)
  20.                    printf("nEl archivo no se pudo abrir");  
  21.                 else{
  22.                    printf("nEntre la Cuenta,Nombre y Blance:n");
  23.                    printf("nEntre EOF para finalzar el archivo");
  24.                    printf("nDato:");
  25.                    fflush(stdin);
  26.                    scanf("%d%s%f",&cuenta,Nombre,&Balance);
  27.                    while(!feof(stdin)){
  28.                       fprintf(cfptr,"%d %s %.2fn",cuenta,Nombre,Balance);
  29.                       printf("nDato:");
  30.                       fflush(stdin);
  31.                       scanf("%d%s%f",&cuenta,Nombre,&Balance);
  32.                    }
  33.                 getch();
  34.                 fclose(cfptr);
  35.                 }
  36.                 break;
  37.          case 2:printf("nnLeer Archivo");
  38.                 if((cfptr=fopen(archivo,"r"))==NULL)
  39.                    printf("nEl archivo no se pudo abrir");  
  40.                 else{
  41.                    printf("n%-10s%-13s%sn","Cuenta","Nombre","Balance");
  42.                    fscanf(cfptr,"%d %s %f",&cuenta,Nombre,&Balance);
  43.                    while(!feof(cfptr)){
  44.                       printf("%-10s%-13s%sn",cuenta,Nombre,Balance);
  45.                       fscanf(cfptr,"%d%s%f",&cuenta,Nombre,&Balance);
  46.                    }
  47.                 getch();
  48.                 fclose(cfptr);
  49.                 }
  50.                 break;
  51.          case 3:printf("nGracias por utilizar este programa");          
  52.                 getch();
  53.                 a=1;
  54.                 break;
  55.         default:printf("nCometio un error, presione tecla para continuar");
  56.                 getch();
  57.                 break;
  58.       }    
  59.    }    
  60. return 0;
  61. }
  62.  

Espero Comentarios

De nuevo Gracias

Páginas: [1]