Muchisimas gracias por la ayuda/explicacion, te cuento que pude arreglar el error gracias a lo que me dijiste de que estaba buscando datos en binario, cambie la forma de guardar los datos envés de usar ".txt" lo cambie a ".bin".
Adjunto el codigo para que veas lo que modifique.
Ingreso
Mostrar
Modificar
Adjunto el codigo para que veas lo que modifique.
Ingreso
Código [Seleccionar]
#include <iostream>
#include <conio>
#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <ctype.h>
FILE *FMaterial = NULL;
struct Material
{
int iID;
char cNombre[25];
int iExist;
float fPrecioC;
int iExistm;
char cDescrip[30];
float fPrecioV;
int iEliminado;
};
void vingresomat()
{
Material material;
clrscr();
fflush(stdin);
cout<<"\t||=====Ingreso de datos=====\n";
cout<<"\t||Nombre: ";
fgets(material.cNombre,sizeof(material.cNombre),stdin);
if(material.cNombre[strlen(material.cNombre)-1]=='\n')
{
material.cNombre[strlen(material.cNombre)-1] = '\0';
}
fflush(stdin);
cout<<"\t||Existencia: ";
cin>>material.iExist;
fflush(stdin);
cout<<"\t||Precio Costo: Q";
cin>>material.fPrecioC;
fflush(stdin);
cout<<"\t||Existencia Minima: ";
cin>>material.iExistm;
cout<<"\t||Descripcion: ";
fgets(material.cDescrip,sizeof(material.cDescrip),stdin);
if(material.cDescrip[strlen(material.cDescrip)-1] == '\n')
{
material.cDescrip[strlen(material.cDescrip)-1] = '\0';
}
cout<<"\t||Precio de Venta: Q";
cin>>material.fPrecioV;
material.iEliminado=0;
FMaterial = fopen("Material.bin", "r");
if(FMaterial==NULL)
{
FMaterial = fopen("Material.bin","a+b");
material.iID=1;
fwrite(&material,sizeof(Material),1,FMaterial);
fclose(FMaterial);
}else
{
fclose(FMaterial);
FMaterial=fopen("Material.bin","a+b");
fseek(FMaterial,0,SEEK_END);
material.iID=(ftell(FMaterial)/sizeof(Material))+1;
rewind(FMaterial);
fwrite(&material,sizeof(Material),1,FMaterial);
fclose(FMaterial);
}
}
void main()
{
vingresomat();
getch();
}
Mostrar
Código [Seleccionar]
#include <iostream>
#include <conio>
#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <ctype.h>
FILE *FMaterial = NULL;
struct Material
{
int iID;
char cNombre[25];
int iExist;
float fPrecioC;
int iExistm;
char cDescrip[30];
float fPrecioV;
int iEliminado;
};
void vreportemat()
{
Material material;
clrscr();
FMaterial = fopen("Material.bin", "r");
if (FMaterial == NULL)
{
cout<<"No se han ingresado datos....\n";
}else
{
cout<<"\t||=======Datos=======\n";
fread(&material,sizeof(Material),1,FMaterial);
while(feof(FMaterial)== 0)
{
if (material.iEliminado==0)
{
cout<<"\t||ID: "<<material.iID;
cout<<"\n\t||Nombre: "<<material.cNombre;
cout<<"\n\t||Existencia: "<<material.iExist;
cout<<"\n\t||Precio Costo: Q."<<material.fPrecioC;
cout<<"\n\t||Existencia Minima: "<<material.iExistm;
cout<<"\n\t||Descripcion: "<<material.cDescrip;
cout<<"\n\t||Precio de Venta: Q."<<material.fPrecioV;
cout<<"\n\t||======================================\n";
}
fread(&material,sizeof(Material),1,FMaterial);
}
}
fclose(FMaterial);
getch();
}
void main()
{
vreportemat();
}
Modificar
Código [Seleccionar]
#include <iostream>
#include <conio>
#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <ctype.h>
FILE *FMaterial = NULL;
struct Material
{
int iID;
char cNombre[25];
int iExist;
float fPrecioC;
int iExistm;
char cDescrip[30];
float fPrecioV;
int iEliminado;
};
void modificar()
{
clrscr();
Material material;
int auxID;
cout<<"ID Material: ";
cin>>auxID;
FMaterial = fopen("Material.bin","r+");
if (FMaterial == NULL)
{
cout<<"No hay registros en el archivo...\n";
}else
{
fseek(FMaterial, (long)(auxID-1)* sizeof(Material), 0);
fread(&material, sizeof(Material),1,FMaterial);
cout<<"Nombre: "<<material.cNombre<<"\n";
fclose(FMaterial);
}
}
void main()
{
modificar();
getch();
}