Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.11.2010, 03:43   #1
Saumavalion
 
Регистрация: 30.11.2010
Сообщений: 7
Печаль runtime error R6002 - floating point not loaded

Здраствуйте. У меня есть вопрос.
В работе надо осуществить ввод данных в структуру и записать в файл.
Данный код работает отдельно от программы:
Код:
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;
}
Saumavalion вне форума Ответить с цитированием
Старый 30.11.2010, 03:45   #2
Saumavalion
 
Регистрация: 30.11.2010
Сообщений: 7
По умолчанию

Код:
void createDB()
{
	WIN32_FIND_DATA winFileData;
	HANDLE hFile;
	char nameDB[30],szPath[MAX_PATH];
	int temp=0,p;
	printf(rus("Создание новой базы данных.\n"));
	printf(rus("Введите имя файла: "));
	scanf("%s",nameDB);
	strcat(nameDB,".abc");
	if (GetCurrentDirectory(sizeof(szPath),szPath))
	{
		strcat(szPath,"\\*.abc");
		hFile=FindFirstFile(szPath,&winFileData);
		if (strcmp(nameDB,winFileData.cFileName)==0) temp++;
		else
			if (hFile!=INVALID_HANDLE_VALUE)
				while (FindNextFile(hFile, &winFileData)!= 0)
					if (strcmp(nameDB,winFileData.cFileName)==0)
					{
						temp++;
						break;
					}
		FindClose(hFile);
	}
	if (temp==1)
	{
		printf(rus("Такой файл существует! Выберите действие для работы с ним.\n"));
		printf(rus("1) Создать новый файл заменив старый\n2) Открыть файл\n3) Ничего не делать\n"));
		do
		{
			scanf("%d",&p);
			if(p<0 || p>3)
				printf(rus("Введено не верное число! Введите, пожалуйта число от 1 до 3."));
		}
		while(p<0 || p>3);
		switch(p)
		{
			case 1: if ((database=fopen(nameDB,"w+b"))==NULL)
					{
						printf(rus("Файл невозможно создать."));
						return;
					}
					break;
			case 2: if ((database=fopen(nameDB,"a+b"))==NULL)
					{
						printf(rus("Файл невозможно открыть."));
						return;
					}
					break;
			case 3: main_menu();
		}
	}
	else if ((database=fopen(nameDB,"w+b"))==NULL)
			{
				printf(rus("Файл невозможно создать."));
				return;
			}
	p=menu_select1();
	switch(p)
	{
		case 1: addrec();
//		case 2: listrec();
//		case 3: search();
//		case 4: delete();
		case 5: fclose(database);
				main_menu();
	}
	fclose(database);
}

void openDB()
{
	WIN32_FIND_DATA winFileData;
	HANDLE hFile;
	char nameDB[30],szPath[MAX_PATH];
	int temp=0,p;
	printf(rus("Открытие базы данных.\n"));
	printf(rus("Введите имя файла: "));
	scanf("%s",nameDB);
	strcat(nameDB,".abc");
	if (GetCurrentDirectory(sizeof(szPath),szPath))
	{
		strcat(szPath,"\\*.abc");
		hFile=FindFirstFile(szPath,&winFileData);
		if (strcmp(nameDB,winFileData.cFileName)==0) temp++;
		else
			if (hFile!=INVALID_HANDLE_VALUE)
				while (FindNextFile(hFile, &winFileData)!= 0)
					if (strcmp(nameDB,winFileData.cFileName)==0)
					{
						temp++;
						break;
					}
		FindClose(hFile);
	}
	if (temp==0)
	{
		printf(rus("Такого файла существует! Выберите действие для работы с ним.\n"));
		printf(rus("1) Создать файл\n2) Ничего не делать\n"));
		do
		{
			scanf("%d",&p);
			if(p<0 || p>2)
				printf(rus("Введено не верное число! Введите, пожалуйта число от 1 до 2."));
		}
		while(p<0 || p>2);
		switch(p)
		{
			case 1: if ((database=fopen(nameDB,"w+b"))==NULL)
					{
						printf(rus("Файл невозможно открыть."));
						return;
					}
					break;
			case 2: main_menu();
		}
	}
	else if ((database=fopen(nameDB,"w+b"))==NULL)
		{
			printf(rus("Файл невозможно открыть."));
			return;
		}
	p=menu_select1();
	switch(p)
	{
		case 1: addrec();
//		case 2: listrec();
//		case 3: search();
//		case 4: delete();
		case 5: fclose(database);
				main_menu();
	}
	fclose(database);
}

void main_menu()
{
	int n;
	while (true)
	{
		n=menu_select();
		switch(n)
		{
			case 1: createDB();
					break;
			case 2: openDB();
					break;
			case 3: listenBD();
					break;
			case 4: deleteDB();
					break;
			case 5: printf(rus("Вы уверены что хотите выйти? (1.Да//2.Нет) "));
					scanf("%d",&n);
					if (n==1) exit(n);
		}
	}
}

void addrec()
{
	
	int t;
	printf(rus("Введение данных в базу данных\n"));
	while (true)
	{
		p[N]=new footballteam;
		fflush(stdin);
		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("%e",&p[N]->CostPlayer);
		fwrite(p[N],sizeof(*p[N]),1,database);
		printf(rus("Вы хотите еще добавить одну запись? (1.Да//Любое другое значение. Нет) "));
		scanf("%d",&t);
		N++;
		if (t!=1) return;
	}
}

void main()
{
	printf(rus("База данных 'Футбольные команды' \n"));
	main_menu();
}
Saumavalion вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
is not a valid floating point value nexzis Помощь студентам 3 22.11.2010 13:55
Ошибка связанная с floating point... bloodeagle Помощь студентам 1 18.02.2010 18:15
Floating point exception Gorbunov89 Общие вопросы C/C++ 0 19.12.2009 23:05
s not a valid floating point value prod87 Помощь студентам 1 02.12.2009 20:57
invalid floating point operation mosq Общие вопросы Delphi 7 01.11.2009 13:28