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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.06.2012, 13:04   #1
KOMPNET
Пользователь
 
Регистрация: 30.09.2011
Сообщений: 55
По умолчанию Удалить элемент из массива структуры

Необходимо удалить элемент из массива структур. Удаление производится что показывает этот код. Но записать в файл как ни пробовал не получается.


Код:
struct gai 
{char FIO[25];
 
}st[100];
 
FILE *f;
int n=5;
 
void input()
//функция ввода и хранения данных 
{ f=fopen("gai.txt","rb+");
char s='\0';
 int i;
 system("cls");
   for(i=n;i<100;i++)
     {fflush(stdin);
      system("cls");
      printf("%d",n);
      printf("\nФамилия И.О.: ");
      gets(st[i].FIO);
      n++;
      fwrite(&st [i],sizeof(st[i]),1,f);
      printf("\nПродожить ввод (д/н): ");
      fflush(stdin);
      s=getchar();
      if (s=='н' || s=='Н') i=100;
     }
     fclose(f);  
   }
}
 
 
void udalenie()
{ f=fopen("gai.txt","rb+");
   system("cls");
   fflush(stdin);
    int i=n,j=0,sd[100];
    char s[30];
    for(j=0;j<n;j++)
    sd[j]=1;
    printf("Введите фамилию\n");
    scanf("%s",&s);
    for(j=0;j<n;j++)
       {fread(&st[j],sizeof(st[j]),1,f); 
            if(strcmp(st[j].FIO,s)==0)
               {sd[j]=0;
                 i--;
                }
        }
 
for(int j=0;j<n;j++)
    if (sd[j]!=0)
       {fread(&st[j],sizeof(st[j]), 1, f);
         printf("\n%17s",st[j].FIO);
         fflush(stdin); 
        }
 
 
 
 
int main()
//главная функция
{fflush(stdin);
char s='\0';
do  
   {system("cls");
     printf("Выберите действие: \n");
    printf("1 - Ввод данных \n");
    printf("2 - Удалить данные\n");
   printf("3 - Выход\n");
    s=getchar();
    switch(s)
      {case '1':input();break;
       case '2':udalenie();break;
      }
   }
   while (s!='3');
}
Вот такой код
KOMPNET вне форума Ответить с цитированием
Старый 07.06.2012, 11:30   #2
KOMPNET
Пользователь
 
Регистрация: 30.09.2011
Сообщений: 55
По умолчанию

?????????????????
KOMPNET вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как удалить элемент массива? БалаШагаЛ PHP 1 28.01.2012 20:46
Как удалить(добавить) элемент массива? vanek1 Помощь студентам 3 15.12.2010 22:26
удалить элемент из массива dron-k Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 17.09.2010 17:46
Как удалить\добавить элемент массива с++ Sanu0074 Помощь студентам 3 15.06.2010 11:53
Удалить элемент массива pavel42 Помощь студентам 14 21.05.2009 08:52