ficheros en binario

detroya
21 de Abril del 2010
Mi problema es el siguiente:

Una empresa de coches tiene almacenado en un fichero de texto la informaci贸n de cada una
de las ventas del 煤ltimo a帽o. Cada venta est谩 descrita por la fecha (D铆a/Mes/A帽o), el nombre
del art铆culo vendido (sin espacios) y el precio de venta. El fichero que tiene la informaci贸n
empieza con una cabecera que indica qu茅 es cada columna del fichero.
a) Realizar la definici贸n de una funci贸n que lea la informaci贸n de ventas del fichero de texto y la
escriba en un fichero binario con el siguiente formato:
Para cada venta escribir谩 en el fichero un entero para el d铆a, un entero para el mes, un entero
para el a帽o, una cadena de 10 caracteres para el coche y un entero para el precio.
La funci贸n recibir谩 como par谩metros los nombres de los ficheros (de texto y binario) y
devolver谩 el n煤mero de ventas reflejadas en el fichero de texto.
El prototipo de la funci贸n es el siguiente:
int ventas_tb(char * ftxt, char * fbin);
b) Realizar la definici贸n de una funci贸n que lea la informaci贸n de ventas del fichero binario
creado por la funci贸n ventas_tb desarrollada en el apartado anterior y la escriba en un
fichero de texto con el formato original. La funci贸n recibir谩 como par谩metros los nombres de los
ficheros (binario y de texto) y devolver谩 el n煤mero de ventas reflejadas en el fichero de texto.
El prototipo de la funci贸n es el siguiente:
int ventas_bt(char * fbin, char * ftxt);
Donde:
char * ftxt Puntero a la cadena de caracteres que contiene el nombre del fichero de texto.
char * fbin Puntero a la cadena de caracteres que contiene el nombre del fichero binario.
El codigo no tiene error de compilacion pero no me crea el archivo binario, si alguien pudiese encontrar los fallos y orientarme para la realizacion de la funcion se lo agradeceria. Un saludo.

#include <stdio.h>
#include <stdlib.h>
int ventas_tb(char * ftxt, char * fbin);
main()
{
FILE * ftxt;
FILE * fbin;
char coche[10];
int dia;
int mes;
int ano;
int precio;
int cont;
char NombreFichero[100];
cont=0;
printf("Nombre del fichero con los datos de ventan");
scanf("%s",NombreFichero);
ftxt=fopen(NombreFichero,"rt");
if (ftxt==NULL)
{
printf("nFallo en la asignacion de memorian");
exit(0);
}
fbin=fopen(NombreFichero,"wb");
if (fbin==NULL)
{
printf("nFallo en la asignacion de memorian");
exit(0);
}
while (feof(ftxt)==0)
{
fscanf(ftxt,"%d%d%d %s %d",&dia,&mes,&ano,coche,&precio);
if(feof(ftxt)==0)
{
while (feof(fbin)==0)
{
fwrite(&dia,&mes,&ano,coche,precio,sizeof(int),fbin);
cont++;
}
}
}
fclose(ftxt);
fclose(fbin);
}