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

Вернуться   Форум программистов > C++ > Общие вопросы C/C++
Регистрация

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


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

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

Ответ
 
Опции темы
Старый 22.08.2019, 23:16   #1
РОман321
Новичок
 
Регистрация: 22.08.2019
Сообщений: 1
Репутация: 10
Восклицание Сортировка по алфавиту

Имееться файл с данными о читателях:
Savchuk:Lida:Ivanovna:1956:56953247 :4:0:1:500:
Marchenko:Dmitry:Olegovich:1999:544 46844:3:1:2:500:
и тд
нужно ВЫВЕСТИ всех в алфавитном порядке но программа не выводит и вылетает. Помогите пожалуйста
Вот код:
Код:
FILE* f = fopen("_data//_rdrs_inf.txt", "r");
char buf[255];
char letter;
int num_of_str = 0;                           //количество читателей(1 читатель на 1й строке)
while (fgets(buf, 255, f))
	num_of_str++;
fseek(f, 0, SEEK_SET);
READER_AND_INFO_OF_READER*reader = new READER_AND_INFO_OF_READER[num_of_str];
for (int i = 0; i < num_of_str; i++)
{
	fscanf(f, "%[^:]:%[^:]:%s:%i:%i:%i:%i:%i:\n", reader[i].last_name,reader[i].first_name,reader[i].patronymic,reader[i].date_of_birth,reader[i].passport_num, reader[i].ID_number, reader[i].num_of_read_books,reader[i].money);
}
	//запись инфо о читателях
int i = 0;
int*let=new int[num_of_str+1000];
int num_of_str_for_ = 0;   //счетчик читателей 1-17
int ascii_num = 65;// код буквы А
//с этого момента код вылетает
do //сортировка читателей по алфаввиту делаеться записью в массив айди читателя(у всех разный)если 1я буква а, б, в и тд
{
  while (num_of_str_for_ < num_of_str)
  {
	letter = reader[num_of_str_for_].last_name[0];
	if (letter == ascii_num)
	{
		let[i] = reader[num_of_str_for_].ID_number;
		i++;
	}
		num_of_str_for_++;
  }
	ascii_num++;
	num_of_str_for_ = 0;
} while (ascii_num != 91);
		
fclose(f);
FILE* f = fopen("_data//_rdrs_inf.txt", "r");
		
//вывод идет по очереди айди, которые уже отсортированы по алфавиту
for (int g = 0; g < num_of_str; g++)
{
fscanf(f, "%[^:]:%[^:]:%[^:]:%i:%i:%i:%i:%i:\n", reader[g].last_name, reader[g].first_name, reader[g].patronymic, &reader[g].date_of_birth, &reader[g].passport_num, &reader[g].ID_number, &reader[g].num_of_read_books, &reader[g].money);
		if (item == g)
		{
			setColor();
			cout << reader[let[g]].last_name;
			resetColor();
			cout<<endl;
		}
		else
		cout << reader[let[g]].last_name << endl;
}
_____
Код программы нужно выделять (форматировать) тегами [CODE] [/CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 22.08.2019 в 23:29.
РОман321 вне форума   Ответить с цитированием
Старый 24.08.2019, 19:18   #2
Desc
Developer
ФорумчанинФорумчанин
 
Аватар для Desc
 
Регистрация: 21.11.2007
Адрес: Ukraine
Сообщений: 110
Репутация: 51
По умолчанию

Текст ошибки, код ошибки?
Ошибка на этапе сборки или во время работы программы?
__________________
Корректно сформулировал вопрос - приблизился к решению
Desc вне форума   Ответить с цитированием
Ответ

Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка по алфавиту. Nagato Помощь студентам 0 22.11.2016 14:53
Сортировка по алфавиту. asmars Общие вопросы C/C++ 3 17.04.2012 00:42
Сортировка по алфавиту DimOn4Ik БД в Delphi 3 17.04.2010 06:48
Сортировка по алфавиту Cpluser Общие вопросы C/C++ 7 03.03.2010 11:11


22:17.


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