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 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Новичок
*

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

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


нашла пример записи и чтения в/с бинарного файла... но что-то не выходит...
Код


void Read()
{    
     size_t res;
     double filepath[100];
     printf("Please, input the full file-path:\n"); /
     scanf("%s", filepath);
     file=fopen(filepath, "rb");
     if (file == 0) {
    perror("Ошибка");
    exit(1);  
}

res = fread(filepath, sizeof(double), 100, file);

}
   fclose(file);

     }

void Write()
{    
     int Number=0;
     double filepath[100];
     printf("Please, input the full file-path for writing:\n");
     scanf("%s", filepath);
     file=fopen(filepath, "wb");
     if (file == 0) {
     perror("Ошибка");
    exit(1);  
}
       for (int i=0; i<MAXLEN; i++) {
             // вот тут что надо писать в скобках для записи сруткуры?
             res= fwrite(filepath, "%s %3d %.2f %.2f\n", stdar[i]->Name, stdar[i]->Amount, stdar[i]->Price, stdar[i]->Weight,file);
             Number++;
          }
     printf("Complete! %d Object's added\n", Number);
     fclose(file);
     }
}


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

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


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

 





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