Al fread le estás pasando como buffer un string, y ademas de que me resulta
raro que eso haya compilado, te diría que lo reemplaces por un char * y
pruebes de esa manera.

saludos

2008/3/22 Cesar casasola <[EMAIL PROTECTED]>:

> Amigo ya se qu en c++ hay mas facilidades que n lenguaje c, por eso es c++
> no, incluso ete lenguaje es orientado a objetos a diferencia delc que es
> solo estructurado. Pero lo k estoy haciendo es un ejercicio d programacion,
> en el cual debo crear una rchivo que guarde string con todas sus subrutinas
> crear, leer , mostrar pero utilizando ls funciones para fichero que nos
> brinda el c. Ahora ya tngo el programa con todas sus surutinas, pero la
> subrutina mostrar no funciona bien , muestra  los datos k stan dentro del
> archivo pero con  basura (simbolos extraño). Y ese es el problema que akeja
> a mi programa.Ahora necesito que me expliken porq suscede eso, cual seria
> la solucion para evitar que el programa muestre basura. Y si es podible
> brindarme el modificar el codigo para solucionar el problema que les he
> explicado. Aki les dejo de nuebvo todo ekl programa:
>
> #include <stdio.h>
> #include <iostream.h>
> #include <stdlib.h>
> #include <conio.h>
> #include <conio.c>
> #include <string>
> #include <string.h>
> void CrearFile(FILE **F);
> void LeerFile(FILE **F);
> void MostrarFile(FILE *F);
> int Menu();
> int main()
> {
>  int opcion;
>  FILE *S;
>  do
>  {
>   opcion=Menu();
>   switch(opcion)
>   {
>    case 1:CrearFile(&S);break;
>    case 2:LeerFile(&S);break;
>    case 3:MostrarFile(S);break;
>    case 4:exit(0);
>   }
>  }while(opcion!=4);
>       system("PAUSE");
>       return 0;
> }
> void CrearFile(FILE **F)
> {
>  (*F)=fopen("Archivo.txt","w");
>  system("cls");
>  if((*F)==NULL)
>  {
>   cout<<"Error al crear Archivo !!!\n";
>   getch();
>   return;
>  }
>  cout<<"Archivo Creado!!!\n";
>  getch();
> }
> void LeerFile(FILE **F)
> {
>  string aux;
>  char cad[100];
>  (*F)=fopen("Archivo.txt","w");
>  if((*F)==NULL)
>  {
>   cout<<"Error al escribir Archivo !!!\n";
>   getch();
>   return;
>  }
>  system("cls");
>  cout<<"\tRUTINA DE LECTURA\n";
>  cout<<"\t=================\n";
>  cout<<"Ingrese elemento: ";
>  cin.ignore();
>  getline(cin,aux);
>
>  cin.ignore();
>  fwrite(aux,sizeof(aux),1,(*F));
>  fclose((*F));
>  cout<<"Elemento insertado\n";
>  getch();
> }
> void MostrarFile(FILE *F)
> {
>  string aux;
>  char *dat,s[100];
>  const char *p;
>  F=fopen("Archivo.txt","r");
>  system("cls");
>  cout<<"\tRUTINA DE VISUALIZACION\n";
>  cout<<"\t=======================\n";
>  fread(aux,sizeof(aux),1,F);
>  while(!feof(F))
>  {
>   //p=aux.c_str();
>   //cin.ignore();
>   cout<<aux<<" ";
>   fread(aux,sizeof(aux),1,F);
>  }
>  getch();
> }
> int Menu()
> {
>  int opc;
>  system("cls");
>  cout<<"\tMENU\n";
>  cout<<"\t====\n\n";
>  cout<<"\t[1]. Crear Archivo\n";
>  cout<<"\t[2]. Leer Archivo\n";
>  cout<<"\t[3]. Mostrar Archivo\n";
>  cout<<"\t[4]. Salir\n";
>  cout<<"\tDigite una opcion:    [ ]";
>  gotoxy(32,8);cin>>opc;
>  return opc;
> }
> Gracias a todos los q envien sus respuestas : )
>
> ------------------------------
>
> Enviado desde Correo Yahoo!
> Disfruta de una bandeja de entrada más 
> inteligente.<http://us.rd.yahoo.com/mailuk/taglines/isp/control/*http://us.rd.yahoo.com/evt=52431/*http://es.docs.yahoo.com/mail/overview/index.html>
> .
>
> _______________________________________________
> Lista de correo Programacion.
> [email protected]
> http://listas.fi.uba.ar/mailman/listinfo/programacion
>
>
_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion

Responder a