Hola buenos dias , estoy intentando crear y visualizar un fichero , pero no consigo crearlo , tengo este codigo alguna ayuda.
-----------------------------------------------------------------------------*/
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<ctype.h>
#include<string.h>
/* 1) *Declaracion del registro*/
struct REGISTRO{
       char almacen[10];
       char codpro[10];
       char descri[20];
       int exis;
       long precio;
}reg;
/* 2) Declaracion de fichero */
FILE *pf;
void Creacion(), Visualizacion(),Salir();
int  i , op;
char Titulo[80];
void main(){
     void Creacion(), Viusalizacion(),Salir();
    do{
      clrscr();
      gotoxy (35,2);printf("M E N U FICHERO");
      gotoxy (35,6);printf("1-C R E A C I O N");
      gotoxy (35,8);printf("2-V I S U A L I Z A C I O N");
      gotoxy (35,10);printf("4=Salir:");
      gotoxy (32,16);printf("Teclea opcion:");
      clreol(); fflush(stdin);scanf("%d",&op);
           if(op!=4)
      switch(op){
                case 1: clrscr();Creacion(); break;
                case 2: clrscr();Visualizacion();break;
                case 4: clrscr();Salir(); break;
      }
    }while(op!=4);
}
void Creacion(){
 // 3) Cabecera Titulo del proceso
 clrscr();
 printf(" CREACION DE FICHERO SECUENCIAL \n");
 printf("=============================== \n");
// 4) Apertura del fichero
 if ((pf=fopen("FALMACEN.DAT","wb"))== NULL)
  {
    printf(" No se puede abrir el archivo ...\n");
    exit(0);
  }
 while(1)
 {
 /*5)Tecleo de datos del registro para alamacebarlas en var.de memo,principal*/
 printf("Introduce ALMACEN (fin = f):");gets(reg.almacen);
 if(strcmp(reg.almacen,"f") == 0);
  printf("Introduce Cod.Pro  :");gets(reg.codpro);
  printf("Introduce Descripcion  :");gets(reg.descri);
  printf("Introduce Existencias :");scanf("%d",®.exis);
  printf("Introduce Precio_unit  :");scanf("%ld",®.exis);
  fflush(stdin);
 /* Grabacion del registro en el fichero */
 fwrite(®,sizeof(reg),1,pf);
 }
 /* Cierre delfichero */
 fclose(pf);
 printf("Fichero creado"); getch();
}
 void Visualizacion(){
      clrscr();
 printf("Dame Titulo de la Visualizacion: "); gets(Titulo);
 //2) visulaizamos el Titulo:
 clrscr();
 printf("%s\n",Titulo);
 for(i=0;i<strlen(Titulo);i++) printf("=");printf("\n\n");
 //3 Cabezeras Campos registro:
 printf("%-15s %-15s %-20s %10s %10s\n","ALMACEN","COD.PRO", "DESCRIPC.",
                                        "EXISTENCIAS","PRECIO");
 for(i=0;i<80;i++) printf("-");
 // 4)Apertura del archivo_
 if ((pf=fopen("FALMACEN.DAT","rb"))== NULL)
  {
    printf(" No se puede abrir el archivo ...\n");
    exit(0);
  }
 // 5) Lectura del primer registro:
 fread(®,sizeof reg,1,pf);
 while(!feof(pf))
 {
 //6) Visualizacion del registro
  printf("%-15s %-15s %-20s %10s %10s\n", reg.almacen,reg.codpro,
                                          reg.descri,reg.exis,reg.precio);
 // 7)Lectura de los siguientes registros.
   fread(®,sizeof reg,1,pf);
 }
 //8) Cierre del archivo
  fclose(pf);
  getch();
}
void Salir(){
}