Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 04.12.2012, 02:41   #1
Proger_1
Пользователь
 
Регистрация: 08.03.2010
Сообщений: 21
Репутация: 10
По умолчанию Сортировка структуры

Есть структура:
Код:
struct Tovar {
	char code[30];
	char name[30];
	int amount;
	int cost;
};
Надо отсортировать её по полю code.
Пишу:
Код:
char temp[30];
char temp2[30];
char temp3[30];
char temp4[30];

void sorttovar(HANDLE hrFile) {
	Tovar ctovar;
	DWORD dwCount;

	cout << "---------------------------------------------" << endl
		 << "Code        Name         Amount         Cost" << endl
		 << "---------------------------------------------" << endl;
		
	
	SetFilePointer(hrFile, sizeof(Tovar) * num, NULL, FILE_BEGIN);
	ReadFile(hrFile, &ctovar, sizeof(Tovar), &dwCount, NULL);
		
	for (int i=0; i<sizeof(Tovar); i++)
		for (int j=0; i<sizeof(Tovar)-1; j++)
		
			if(ctovar[j].code>ctovar[j+1].code)
			{
				temp=ctovar[j].code;
				temp2=ctovar[j].name;
				temp3=ctovar[j].amount;
				temp4=ctovar[j].cost;
				ctovar[j].code=ctovar[j+1].code;
				ctovar[j].name=ctovar[j+1].name;
				ctovar[j].amount=ctovar[j+1].amount;
				ctovar[j].cost=ctovar[j+1].cost;
				ctovar[j+1].code=temp;
				ctovar[j+1].name=temp2;
				ctovar[j+1].amount=temp3;
				ctovar[j+1].cost=temp4;
			}
		
	while (dwCount != 0) {				

		cout.setf(ios::left);
		cout << setfill(' ') << setw(12) <<ctovar.code 
			 << setw(13) << ctovar.name << setw(15) << ctovar.amount << setw(15) << ctovar.cost<< endl;
		SetFilePointer(hrFile, sizeof(Tovar) * num, NULL, FILE_BEGIN);
		ReadFile(hrFile, &ctovar, sizeof(Tovar), &dwCount, NULL);
	}
	cout << "---------------------------------------------" << endl;
}
Получаю ошибку в строках сортировки: error C2676: binary '[' : 'Tovar' does not define this operator or a conversion to a type acceptable to the predefined operator

Подскажите что не так. Спасибо.
Proger_1 вне форума   Ответить с цитированием
Старый 04.12.2012, 02:53   #2
Пепел Феникса
Модератор
Заслуженный модератор
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Адрес: Москва
Сообщений: 20,995
Репутация: 3436

icq: 446843180
skype: phoenix_proger
По умолчанию

ctovar давно массивом стало?
__________________
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума   Ответить с цитированием
Старый 04.12.2012, 20:45   #3
Proger_1
Пользователь
 
Регистрация: 08.03.2010
Сообщений: 21
Репутация: 10
По умолчанию

А как быть, не подскажите?
Proger_1 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сортировка структуры Си jana89 Общие вопросы C/C++ 5 27.11.2011 20:48
Сортировка структуры данных CodeNOT Общие вопросы C/C++ 3 27.12.2010 22:24
Сортировка элементов структуры JeyKip Общие вопросы C/C++ 2 31.10.2009 21:08
Сортировка динамической структуры Lemo Помощь студентам 7 13.10.2009 18:58
сортировка структуры vo_sa Общие вопросы C/C++ 1 25.06.2009 14:16


22:21.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru