nik_neman
@nik_neman
php-junior

Редактирование выбранной записи?

Здравствуйте.
Данные хранятся в бинарном файле.
Как сделать редактирование выбираемой строки? Т.е. пользователю сразу видны все записи. Он выбирает необходимую запись и там редактирует значения.
Вот код
struct uefa {
	char fio[100];
	char team[100];
	int game;
	int goal;
	int pass;
};
char str[256];
FILE *f;
uefa buffon;
int n;
char s[20] = "better.dat";
// открытие
void openfile() {
	f=fopen(s,"rb");
	cout << "\nСтатистика Лиги Чемпионов 2014/15: \n\n";
	int i = 1;
	cout << str;
		cout << " №";
		cout << setw(3) << str;
		cout << "Футболист ";
		cout << setw(10) << str;
		cout << "Команда ";
		cout << setw(7) << str;
		cout << "Матчи ";
		cout << setw(6) << str;
		cout << "Голы ";
		cout << setw(6) << str;
		cout << "Передачи ";
		cout << setw(5) << str;
		cout << "Г+П\n\n";
		cout << setw(5) << str;
		cout << endl;
		 while (fread(&buffon, sizeof(uefa), 1, f)){
			 cout << setw(3) << i++;
			 cout << setw(12) << buffon.fio;
			 cout << setw(18) << buffon.team;
			 cout << setw(12) << buffon.game;
			 cout << setw(10) << buffon.goal;
			 cout << setw(12) << buffon.pass;
			 cout << setw(13) << buffon.goal + buffon.pass;
			 cout << endl;
		 }
}
// добавление
void addition() {
	openfile();
	cout << endl;
	f = fopen(s, "ab+");
	cout << "Кол-во игроков? ";
	cin >> n;
	for (int i = 1; i <= n; i++) {
		cout << "Фамилия " << i << " игрока? ";
		cin >> buffon.fio;
		cout << "Команда " << i << " игрока? ";
		cin >> buffon.team;
		cout << "Матчи " << i << " игрока? ";
		cin >> buffon.game;
		cout << "Голы " << i << " игрока? ";
		cin >> buffon.goal;
		cout << "Голевые передачи " << i << " игрока? ";
		cin >> buffon.pass;
		fwrite(&buffon, sizeof(uefa), 1, f);
	}
	fclose(f);
}

Или может у кого-нибудь есть программа типа курсовой на c++ где используют бинарные файлы и реализовано удаление, сортировка, изменение, поиск?
Заранее спасибо.
  • Вопрос задан
  • 210 просмотров
Пригласить эксперта
Ответы на вопрос 2
miraage
@miraage
Старый прогер
Не имею ничего общего с C++, но разве sqlite не поможет в данной задаче?
Ответ написан
chlp
@chlp
фулстек
Когда-то давно для похожих задач (лабораторки) я просто выводил рядом с каждой строкой ее индекс и читал ввод пользователя. A (append), D (delete), E (edit). При вводе одного из символов я переходил к нужному методу.
Можно показать умение написания повторно используемого кода на примере использования одного и того же метода при выборе записи для D и E и при задании новых данных для записи для A и E.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы