Dev-C++4.9.9.2. Язык Си. Отчёт об ошибке.
Написала програмку, запускаю, и как только нажимаю клавишу, выводит : Обнаружена ошибка. Приложение будет закрытою Отправить/Не отправить отчёт об ошибке. Изза чего это может быть?
int main(void){
int cmd;
printf("\tHello!\n");
printf("0 - Exit\n");
printf("1 - Input base in file\n");
printf("2 - Print\n");
printf("3 - Read from file\n");
printf("4 - Delete\n");
printf("5 - Save base\n");
printf("6 - Find\n");
printf("7 - Insert\n");
printf("Input comanda\n");
scanf("%d", cmd);
do{
switch(cmd){
case '0': printf("Press Enter"); break;
case '1': WriteDB();printf("OK"); break;//записать в файл
case '2': printf("\nAVTOMOBILS"); PrintDB(); break;//читать с файла
case '3': ReadDB(); break;//вывод с файла
case '4': Delete1(); break;
//case '5': SaveDB(); break;
case '6': puts("Enter key\n"); gets(key); printf("%d", Find()); break;
//case '7': Insert(); break;
}
puts("Vvesty variant");
scanf("%d", &cmd);}
while(cmd);
getch();
}
#include
#include
#include
#include
typedef struct avto{
char marka[10];
char model[10];
char year[5];
char color[10];
}
avto;
FILE *f;
avto empty;
char key[5];
void Init (void);
avto tabl[10];//таблица
avto EmptySt(avto st){
strcpy(st.marka," ");
strcpy(st.model," ");
strcpy(st.year," ");
strcpy(st.color," ");
return st;
}
void WriteDB(){//ввод с клавиатуры и запись в файл
char marka1[10], model1[10], year1[5], color1[10];
int i, n;
if ((f=fopen("avto.txt", "w"))==NULL){
printf("Error!");
return;
}
while (i
}
void ReadDB(){//читать с файла
if ((f=fopen("avto.txt", "r"))==NULL){
printf("Error!");
return;
}
int i=0;
Init();
while (!feof(f)){
fscanf(f,"%s%s%s%s", &(tabl.marka), &(tabl.model), &(tabl.year), &(tabl.color));
i++;
}
fclose(f);
}
void PrintDB(){//вывод с файла
for(int i=0; i<6; i++)
printf ("%-10s | %-10s | %-4d | %-10s |\n", (tabl.marka), (tabl.model), (tabl.year), (tabl.color));
fclose(f);
}
int Find(void){
int i=0;
while((i<10)&&(strcmp(tabl.year, key)))
i++;
return i;
}
void Delete1(){//удаление
puts("Enter key");
gets(key);
int pos=Find();
if(pos==10)
printf("Element dlia vudalennya ne znaydeno!");
else tabl[pos]=empty;//делает ряд в таблице пустым
}
int lessbyyear(avto a, avto b)
{
return (atoi(a.year)
tabl=st;
}
void SortYear(){//сортирует по году
int flag=1, i;
while (flag){
flag=0;
for(i=0; i<10; i++)
if(!lessbyyear(tabl[i+1], tabl)){
swap(i,i+1);
flag=1;
}
}
}
только main в конце