В бинарный файл ввести несколько структур и сделать с ними определенные действия - C (СИ)

Узнай цену своей работы

Формулировка задачи:

В бинарный файл нужно ввести несколько структур и сделать с ними определенные действия. У меня все стопорится, когда необходимо показать все записанные структуры. Ещё вопрос, при печати данных записанных в бинарном файле они отображаются как 1 и 0 или в том виде, в каком записывались в файл? вот код, помогите исправить то, что с номером два идет.. вылазит только непонятный восклицательный знак..
#include <stdio.h>
#include <string.h>
 
struct computers
{
    int id;
    char surname[6];
}row[100];
 
int main()
{
     int n,i,numread;
    char number=0;
    FILE *file;
    printf("\t\tMENU\n");
    
    while (number != '4'){
    
     printf(" \tPrint 1 for adding row\n");
    printf(" \tPrint 2 for showing\n");
    printf(" \tPrint 3 for searching \n");
    printf(" \tPrintf 4 for exit\n");
    scanf("\t\t%c", &number);
 
FILE* fp = fopen("my_file.txt","wb"); 
 
    if(number=='1')
    {              int k;
                   printf("How much lines do you want to add?\n");
                   scanf("%i", &k);
                   FILE* fp = fopen("my_file.txt","ab"); 
                   for (i=1; i<=k; i++)
                               {printf ("Enter id\n");
                                scanf ("%d", &row[i].id);
                                printf ("Enter surname_owner\n");
                                scanf ("%s", &row[i].surname);
                                fwrite(&row[i], sizeof(row),1,fp); 
                                   }
                   fclose(fp); 
                   }
    if (number=='2'){
    rewind(fp);
    fp = fopen("my_file.txt","rb");
        i = 0;
                    while(!feof(fp))
                    {
                    fread(&row, sizeof(row),1,fp);
                    printf ("%s!\n", row[i].surname);
                    i++;
                    }
                    }
                    }
                    }

Решение задачи: «В бинарный файл ввести несколько структур и сделать с ними определенные действия»

textual
Листинг программы
FILE* fp = fopen("my_file.txt","wb");

Объяснение кода листинга программы

  1. my_file.txt - это имя файла, который будет открыт для записи.
  2. wb - это режим открытия файла, который указывает, что файл будет открыт для записи в двоичном формате.
  3. fp - это переменная, которая будет использоваться для хранения дескриптора файла.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.133 из 5
Похожие ответы