IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> удаление ел-та из масива; бинарный файл, с/с++
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 46
Пол: Женский

Репутация: -  0  +


1.Удалить из масива элементы, индект которых кратен двум, и вывести на экран оставшиеся...
как правильно записать условие? чтоб удаляло числа кратные 2-м?..
Код

void krat(apteka* stdar[])
{

//вывод эл-ов на экран
     printf(" # name     amount  price  weight \n");
     for (int i=0; i<MAX; i++)
     {
         stdar[i]->printstud();
    }

void delobject(apteka* stdar[]) // удаление одного ел-та
{
     int n;
     printf("What object do you want to delete?\n");
     scanf("%d", &n);
     delete stdar[n-1];
     stdar[n-1]=stdar[MAX-1];
     stdar[MAX-1]->number=n;
     MAX--;
     printf("Deleted Complete!\n");

}


2. Записать в бинарный файл 10 обьектов класса, прочитать, вывести данные и получить размер файла в байтах. Я если чесно не нашла, описание бинарных файлов на си...>.< Разве что в них пишется fread, fwrite, а размер?..
с обычным файлом функции чтения и записи выглядят так, хотя чтение немного... эм... не работает...
Код


void Read()
{     file=NULL;
     int Number=0;
     char Name0[25];
     int Amount0;
     float Price0,Weight0;
     char filepath[100];
     printf("Please, input the full file-path:\n");
     scanf("%s", filepath);
     file=fopen(filepath, "r");  
     if (file==NULL) {printf("False file-path! Please, rewrite!\n");}
     else {

          while (!(feof(file))) {      
            
               fscanf(file, "%s %d %f %f", Name0, &Amount0, &Price0, &Weight0);
               Add(Name0, Amount0, Price0, Weight0);
               Number++;
          }
     printf("Complete! %d Object's added!\n", Number);
     fclose(file);
     }
}


void Write()
{     file=NULL;
     int Number=0;
     char filepath[100];
     printf("Please, input the full file-path for writing:\n");
     scanf("%s", filepath);
     file=fopen(filepath, "w");
     if (file==NULL) {printf("False file-path! Please, rewrite!\n");}
     else {
          for (int i=0; i<MAXLEN; i++) {
              
               fprintf(file, "%s %3d %.2f %.2f\n", stdar[i]->Name, stdar[i]->Amount, stdar[i]->Price, stdar[i]->Weight);
               Number++;
          }
     printf("Complete! %d Object's added\n", Number);
     fclose(file);
     }
}
void initialize(apteka* stdar[]) //инициализация 10 обьектов...
{    
     stdar[0] = new apteka(1,"Analgin", 12, 75, 180);
     stdar[1] = new apteka(2,"Noshpa", 2, 60, 285);
     stdar[2] = new apteka(3,"Phalimint",3, 20, 176);
     stdar[3] = new apteka(4,"Aspirin", 6, 18, 187);
     stdar[4] = new apteka(5,"Solpadein",10, 37, 300);
     stdar[5] = new apteka(6,"Tabletki", 21, 48, 179);
     stdar[6] = new apteka(7,"Nazalvan",14,  67, 475);
     stdar[7] = new apteka(8,"Vitamihi", 7, 54, 107);
     stdar[8] = new apteka(9,"Zelenka",13, 19, 171);
     stdar[9] = new apteka(10,"Plastir",9,  76, 220);
      printf("Database initialized successfully\n");
}


Сообщение отредактировано: Jerry -


--------------------
Zettai Unmei Mokushiroku
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 12:14
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name