Prueba esto:
Código PHP:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#define MAXLENGTH 9
//----------------------------------------------------------------------------
typedef struct
{
char Tipo[MAXLENGTH];
int Numero;
char Nombre[MAXLENGTH];
char Fabrica[MAXLENGTH];
char Tamanio[MAXLENGTH];
int Venta;
int Compra;
}sRegistro;
sRegistro registro;
void Menu(void);
void CrearArchivo(FILE *Archivo);
void VerDatos(FILE *Archivo);
void InsertarDatos(FILE *Archivo);
void VerDatos(FILE *Archivo);
void LeerRegistroX(FILE *Archivo);
void BuscarNombre(FILE *Archivo);
void MostrarRegistro(sRegistro registro);
//----------------------------------------------------------------------------
int main()
{
int opcion,exit=0;
FILE *archivo;
system("color 0b");
while(!exit)
{
Menu();
printf("\nOpcion: ");
scanf("%d",&opcion);
switch(opcion)
{
case 1:
CrearArchivo(archivo);
printf("\n\n");
system("PAUSE");
system("CLS");
break;
case 2:
InsertarDatos(archivo);
printf("\n\n");
system("PAUSE");
system("CLS");
break;
case 3:
VerDatos(archivo);
printf("\n\n");
system("PAUSE");
system("CLS");
break;
case 4:
LeerRegistroX(archivo);
printf("\n\n");
system("PAUSE");
system("CLS");
break;
case 5:
BuscarNombre(archivo);
printf("\n\n");
system("PAUSE");
system("CLS");
break;
case 6:
exit=1;
break;
default:
printf("\nopcion no valida");
}
}
return 0;
}
//----------------------------------------------------------------------------
void Menu(void)
{
printf("\nMenu: ");
printf("\n\t 1.-Crea archivo ");
printf("\n\t 2.-Insertar Datos");
printf("\n\t 3.-Ver Datos");
printf("\n\t 4.-Mostrar un registro");
printf("\n\t 5.-Buscar por nombre");
printf("\n\t 6.-Salir ");
}
//----------------------------------------------------------------------------
void CrearArchivo(FILE *Archivo)
{
Archivo=fopen("Ejemplo.txt","r");
if (!Archivo)
{
Archivo=fopen("Ejemplo.txt","w");
printf("\nArchivo creado!");
}
else
{
printf("\nEl archivo ya existe!");
}
fclose (Archivo);
}
//----------------------------------------------------------------------------
void InsertarDatos(FILE *Archivo)
{
Archivo=fopen("Ejemplo.txt","a");
if(Archivo==NULL){
printf("\nArchivo no existe! n Por favor creelo");
}else{
printf("\nTipo de Refreso :");
fflush(stdin);
fgets(registro.Tipo, MAXLENGTH, stdin);
registro.Tipo[strlen(registro.Tipo)-1]='\0';
printf("\nNumero de Refresco: ");
fflush(stdin);
scanf("%d", ®istro.Numero);
printf("\nNombre de Refresco : ");
fflush(stdin);
fgets(registro.Nombre, MAXLENGTH, stdin);
registro.Nombre[strlen(registro.Nombre)-1]='\0';
printf("\nCompania que lo Fabrica :");
fflush(stdin);
fgets(registro.Fabrica, MAXLENGTH, stdin);
registro.Fabrica[strlen(registro.Fabrica)-1]='\0';
printf("\nTamano :");
fflush(stdin);
fgets(registro.Tamanio, MAXLENGTH, stdin);
registro.Tamanio[strlen(registro.Tamanio)-1]='\0';
printf("\nPrecio de Venta :");
fflush(stdin);
scanf("%d",®istro.Venta);
printf("\nPrecio de Compra :");
fflush(stdin);
scanf("%d",®istro.Compra);
fwrite(®istro, sizeof(registro), 1,Archivo);
fclose(Archivo);
}
}
//----------------------------------------------------------------------------
void VerDatos(FILE *Archivo)
{
int nReads;
Archivo=fopen("Ejemplo.txt","r");
if (Archivo==NULL){
printf("\nArchivo no existe! n Por favor creelo");
}else{
printf("\nTipo Numero Nombre Fabrica Tamano Venta Compra");
do{
nReads = fread(®istro, sizeof(registro), 1,Archivo);
if(nReads == 1){
MostrarRegistro(registro);
}
}while(!feof(Archivo));
printf("\n");
fclose(Archivo);
}
}
//----------------------------------------------------------------------------
void LeerRegistroX(FILE *Archivo)
{
int size, nRegistros, pos=0, nReads;
Archivo=fopen("Ejemplo.txt","r");
if (Archivo==NULL){
printf("\nArchivo no existe! n Por favor creelo");
}else{
fseek(Archivo , 0 , SEEK_END);
size = ftell(Archivo);
nRegistros = size/sizeof(registro);
if(nRegistros > 0){
printf("Introduce el numero de registro a mostrar: ");
scanf("%d",&pos);
if(pos < 0 || pos >= nRegistros){
printf("\nEl registro elegido no existe.");
}else{
printf("\nTipo Numero Nombre Fabrica Tamano Venta Compra");
memset(®istro, 0, sizeof(registro));
fseek(Archivo , sizeof(registro)*pos, SEEK_SET);
nReads = fread(®istro, sizeof(registro), 1, Archivo);
if(nReads == 1){
MostrarRegistro(registro);
}
}
}
fclose(Archivo);
}
}
//----------------------------------------------------------------------------
void BuscarNombre(FILE *Archivo)
{
int size, nRegistros, nReads, contador=0;
char cadena[8];
char *encontrado;
Archivo=fopen("Ejemplo.txt","r");
memset(cadena, 0, sizeof(cadena));
fflush(stdin);
printf("Introduce el nombre o parte de el: ");
fgets(cadena,MAXLENGTH,stdin);
fflush(stdin);
if (Archivo==NULL){
printf("\nArchivo no existe! n Por favor creelo");
}else{
fseek(Archivo , 0 , SEEK_END);
size = ftell(Archivo);
nRegistros = size/sizeof(registro);
fseek(Archivo , 0, SEEK_SET);
cadena[strlen(cadena)-1]='\0';
if(nRegistros > 0){
printf("\nTipo Numero Nombre Fabrica Tamano Venta Compra");
do{
memset(®istro, 0, sizeof(registro));
nReads = fread(®istro, sizeof(registro), 1, Archivo);
if(nReads == 1){
encontrado = strstr(registro.Nombre,cadena);
if(encontrado != NULL){
MostrarRegistro(registro);
contador++;
}
}
}while(!feof(Archivo));
}
if(contador == 0)
printf("\n\nNo se encontro ningun registro con ese nombre.");
fclose(Archivo);
}
}
//----------------------------------------------------------------------------
void MostrarRegistro(sRegistro registro)
{
int largo,nMods;
largo = strlen(registro.Tipo);
nMods = MAXLENGTH-largo-1;
if(nMods > 0)
memset(®istro.Tipo[largo], ' ',nMods);
largo = strlen(registro.Nombre);
nMods = MAXLENGTH-largo-1;
if(nMods > 0)
memset(®istro.Nombre[largo], ' ',nMods);
largo = strlen(registro.Fabrica);
nMods = MAXLENGTH-largo-1;
if(nMods > 0)
memset(®istro.Fabrica[largo], ' ',nMods);
largo = strlen(registro.Tamanio);
nMods = MAXLENGTH-largo-1;
if(nMods > 0)
memset(®istro.Tamanio[largo], ' ',nMods);
printf("\n%s %d\t %s %s %s %d \t%d ",registro.Tipo,
registro.Numero,registro.Nombre,registro.Fabrica,registro.Tamanio,
registro.Venta,registro.Compra);
}
//----------------------------------------------------------------------------
Hice algunos cambios de cosas que haces y no me gustan.