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

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

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

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

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

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

Есть структура:
Код:
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
Сообщений: 21,000
По умолчанию

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

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


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



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