Требуется помощь в нахождении ошибки.
Вкратце объясняю поставленную задачу. Надо создать бинарный файл, внести в него некоторые данные (работа ведется посредством структур), потом открыть его, внести еще данные, и напоследок поработать с даннными из файла (за последнее пока не брался). Всё это надо реализовать с помощью функций.
Скрытый текст - Вот, то что было сделано:
[PHP]#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<math.h>
struct luggage {char name[20]; int number; float weight;}t1;
void create(FILE *); //Создание нового файла
void open(FILE *); //Открытие файла
void add(FILE *); //Добавление в файл
void delete10(FILE *); //Удаление данных о пассажирах с багажом меньше чем 10
main()
{
char c;
FILE *tf;
while(1)
{
puts("1 - New File");
puts("2 - Open File");
puts("3 - Add to File");
puts("4 - Delete info about passengers with weight of luggage less then 10 kilo");
puts("0 - Exit");
c=getch();
switch(c)
{
case'1': create(tf); break;
case'2': open(tf); break;
case'3': add(tf); break;
case'4': delete10(tf); break;
case'0': return 0;
default: puts("Error!");
}
}
}
void create(FILE *tf)
{
char ch;
tf=fopen("lug.dat", "wb");
printf("\n Entering data \n");
do
{
printf("\n Surname: \n");
scanf("%s",t1.name);
printf("\n Number of items: \n");
scanf("%d",t1.number);
printf("\n The total weight of luggage: \n");
scanf("%f",t1.weight);
fwrite(&t1,sizeof(t1),1,tf);
printf("\n Finish? y/n ");
getch();
}
while(ch!='y');
fclose(tf);
}
void open(FILE *tf)
{
int i;
tf=fopen("lug.dat","rb");
i=1;
fread(&t1,sizeof(t1),1,tf);
while(!feof(tf))
{
printf("\n %3d Name %20s with %2d items has %6.2f kilo of luggage \n",i,t1.name,t1.number,t1.weight);
fread(&t1,sizeof(t1),1,tf);
i++;
}
getch();
}
void add(FILE *tf)
{
char ch;
tf=fopen("lug.dat","ab");
printf("\n Entering data \n");
do
{
printf("\n Surname: \n");
scanf("%s",t1.name);
printf("\n Number of items: \n");
scanf("%d",t1.number);
printf("\n The total weight of luggage: \n");
scanf("%f",t1.weight);
fwrite(&t1,sizeof(t1),1,tf);
printf("\n Finish? y/n ");
ch=getch();
}
while(ch!='y');
fclose(tf);
}
void delete10(FILE *tf)
{
//Здесь однажды появится код...
}[/PHP]
И вот теперь о проблеме. При вводе значения веса багажа (или после ввода количества) программа вылетает... Обнаружить косяк в программе не могу, сколько ни пытаюсь. Может кто чего подскажет, где здесь ошибка?