El programa q les envio sirve para crear , leer(esacribir en el archivo),
mostrar eun archivo de string en C++. A pesar de q son archivos en `c++ ,
trabajo con las funciones para ficheros en C. El problema es el siguiente es
que no puedo mostrar los datos que estan guardados en el archivo , es decir
que la subrutina MostrarFile() no cumple su funcion adecuadamente, noes que no
se muesttre el dato sino es que se muestra pero con un poco de simbolos
exytraños(basura).
He buscado ayuda en otros sitios y me han dicho que en el momento de guardar
los datos en el archivo:
fwrite(aux,sizeof(aux),1,(*F));
Debo darle el tamaño verdadero del dato, me dijeron que sizeof(aux) no
representa el verdaero tamaño del dato leido ya que el tamaño de la cadena
leída no necesariamente es el tamaño de la variable aux, buenos eso es lo que
he entendido al momento q ue me explicaron,. En conclusion dicen que hay
problemas con la sentencia fwrite que mostré mas arriba.
Agradesco toas sus respuestas
Este es el codigo del 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;
}
---------------------------------
Enviado desde Correo Yahoo!
Más formas de estar en contacto.
_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion