В бинарный файл ввести несколько структур и сделать с ними определенные действия - 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");
Объяснение кода листинга программы
my_file.txt- это имя файла, который будет открыт для записи.wb- это режим открытия файла, который указывает, что файл будет открыт для записи в двоичном формате.fp- это переменная, которая будет использоваться для хранения дескриптора файла.