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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2013, 20:18   #1
asv1994
Пользователь
 
Регистрация: 28.10.2012
Сообщений: 50
По умолчанию Удаление записи из структуры при нажатие клавиши 2

Прошу помощи уже прогуглил попробовал несколько вариантов - туго.

Код программы:
Код:
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <locale>
#include <stdlib.h>

struct ats
{
char phone[20];
char fio[30];
char address[30];
char gorod[20];
char phonezakaza[20];
char data[20];
int vremya;
float stoimost;
};

struct ats *tablica;

int cmp(const void *a, const void *b) {
ats *a1=(ats *) a;
ats *b1=(ats *) b;
return strncmp(a1->fio,b1->fio,30);
}

int main()
{setlocale(LC_ALL,"russian_russia");

ats tab[100];

FILE *file;
int i=0, j, kol, knopka, sum=0;
float tarif;
char* v;
file=fopen ("D:\\ats.txt", "r+");
if (file==NULL)
{
printf ("Ошибка при чтении файла");
return 0;
}

printf ("Исходная информация:\n");
printf(" Телефон Ф.И.О Адрес Город Телефон з. Дата Время(с)\n");

while (!feof (file) && i<100)
{printf ("\n");
(fscanf (file, "%s%s%s%s%s%s%d", &tab[i].phone, &tab[i].fio, &tab[i].address, &tab[i].gorod, &tab[i].phonezakaza,
&tab[i].data, &tab[i].vremya));
printf ("\n");																														
printf ("%s %s %s %s %s %s %d\n", tab[i].phone, tab[i].fio, tab[i].address,
tab[i].gorod, tab[i].phonezakaza, tab[i].data, tab[i].vremya); 
i++;
}
kol=i;

printf ("\n");
printf ("Введите тариф:\n");
scanf("%f",&tarif);

printf("\nСтоимость разговора каждого абонента\n");

qsort(tab, kol, sizeof(ats), cmp );

for (i=0; i<kol; i++)
{
tab[i].stoimost=tarif*tab[i].vremya;
fprintf (file, "\n%.2f ", tab[i].stoimost);
printf("%s %s:%.0f\n",tab[i].phone, tab[i].fio, tab[i].stoimost);
sum+=tab[i].vremya; 
}
printf("\nОбщее время разговоров: %d", sum);

printf("\nЕсли вы хотите добавить абонента, введите 1\nЕсли вы хотите удалить абонента нажмите 2\nДля выхода из программы нажмите 3\n");
scanf("%d",&knopka);
if(knopka==1)
{
i++;
printf("\n\nВведите новые сведения об абоненте:\n");
printf("Введите номер телефона:");
scanf("%s",&tab[i].phone);
printf("Введите ФИО:");
scanf("%s",&tab[i].fio);
printf("Введите адрес:");
scanf("%s",&tab[i].address);
printf("Введите город:");
scanf("%s",&tab[i].gorod);
printf("Введите телефон заказа:");
scanf("%s",&tab[i].phonezakaza);
printf("Введите дату:");
scanf("%s",&tab[i].data);
printf("Введите время:");
scanf("%d",&tab[i].vremya);

fprintf (file, "\n%s %s %s %s %s %s %d", tab[i].phone, tab[i].fio, tab[i].address,
tab[i].gorod, tab[i].phonezakaza, tab[i].data, tab[i].vremya);
printf("\n Файл перезаписан");
}
if(knopka==2)
{
СЮДА ЗАПИЛИТЬ УДАЛЕНИЕ НУЖНО
}
if (knopka==3) return 0;

fclose(file);
getch();
return 0;
}
asv1994 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нажатие клавиши ClMlD Общие вопросы Delphi 45 27.01.2013 15:17
Удаление кракозябр при записи в файл tema654 Visual C++ 5 25.03.2012 17:27
Нажатие клавиши... Basketman Общие вопросы Delphi 1 11.02.2010 09:35
Долгое нажатие клавиши в KeyDown как одно нажатие marina15056 Общие вопросы Delphi 7 16.08.2009 00:22
Нажатие клавиши format Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 05.05.2008 15:25