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