Здраствуйте. У меня есть вопрос.
В работе надо осуществить ввод данных в структуру и записать в файл.
Данный код работает отдельно от программы:
Код:
void main()
{
int t;
printf(rus("Введение данных в базу данных\n"));
while (true)
{
p[N]=new footballteam;
printf(rus("Введите название клуба: "));
gets(p[N]->NameTeam);
printf(rus("Введите лигу, в которой играет команда: "));
gets(p[N]->ligue);
printf(rus("Введите город команды: "));
gets(p[N]->city);
printf(rus("Введите имя тренера команды: "));
gets(p[N]->coach);
printf(rus("Введите имя капитана команд: "));
gets(p[N]->captain);
printf(rus("Введите имя лучшего игрока: "));
gets(p[N]->Bestpalyer);
printf(rus("Введите год основания клуба: "));
scanf("%d",&p[N]->DateOsn);
printf(rus("Общая стоимость команды (в миллионах долларов): "));
scanf("%f",&p[N]->CostPlayer);
// fwrite(p[N],sizeof(*p[N]),1,database);
printf(rus("Вы хотите еще добавить одну запись? (1.Да//Любое другое значение. Нет) "));
scanf("%d",&t);
N++;
fflush(stdin);
if (t!=1) return;
}
}
Тогда как, когда я его вставляю в основоную программу он перестает работать и выдает ошибку "runtime error R6002 - floating point not loaded" при попытке ввести float'овское значение. При удалении строк кода с вводом этого значения программа нормально работает. Вот код основной программы:
Код:
#include <windows.h>
#include <stdio.h>
char buf[256];
char *rus(char *s){CharToOem(s,buf); return buf;}
int menu_select();
void listenBD();
void deleteDB();
int menu_select1();
void createDB();
void openDB();
void main_menu();
void addrec();
struct footballteam{
char NameTeam[40]; //название команды
int DateOsn; //дата основания
char ligue[30]; //лига команды
char city[30]; //город команды
char coach[50]; //тренер команды
char captain[50]; //капитан команды
char Bestpalyer[50];//лучший игрок
float CostPlayer; //общая стоимость игроков команды
}*p[50];
int N=0;
FILE *database;
int menu_select()
{
int t;
printf(rus("Выберите нужный пункт меню:\n"));
printf(rus("1) Создать базу данных\n2) Открыть базу данных\n3) Просмотреть доступные базы данных\n"));
printf(rus("4) Удалить базу данных\n5) Выход\n"));
do
{
scanf("%d",&t);
if(t<0 || t>5)
printf(rus("Введено не верное число! Введите, пожалуйта число от 1 до 5."));
}
while(t<0 || t>5);
return t;
}
void listenBD()
{
WIN32_FIND_DATA winFileData;
HANDLE hFile;
char szPath[MAX_PATH];
if (GetCurrentDirectory(sizeof(szPath),szPath))
{
strcat(szPath,"\\*.abc");
hFile=FindFirstFile(szPath,&winFileData);
if (hFile!=INVALID_HANDLE_VALUE)
{
printf(rus("Существующие базы данных\n"));
printf("%s\n",winFileData.cFileName);
while (FindNextFile(hFile, &winFileData)!= 0)
{
printf("%s\n",winFileData.cFileName);
}
FindClose(hFile);
}
else printf(rus("Баз данных нет\n"));
}
}
void deleteDB()
{
char str[80];
printf(rus("Введите удаляемого файла: "));
scanf("%s",str);
strcat(str,".abc");
if (remove(str)==0) printf(rus("Файл успешно удален!\n"));
else printf(rus("Данного файла не существует.\n"));
}
int menu_select1()
{
int t;
printf(rus("Выберите нужный пункт меню:\n"));
printf(rus("1) Добавить новую запись\n2) Просмотреть записи\n3) Поиск записей\n"));
printf(rus("4) Удалить удалить запись\n5) Назад\n"));
do
{
scanf("%d",&t);
if(t<0 || t>5)
printf(rus("Введено не верное число! Введите, пожалуйта число от 1 до 5."));
}
while(t<0 || t>5);
return t;
}