Помогите с Базой Данных
Добрый вечер! Помогите, пожалуйста, найти и исправить ошибку!Моя программа добавляет в БД, выводит БД на экран, но не может найти однофамильцев! Ошибка в функции viewConfig(file)
Добрый вечер! Помогите, пожалуйста, найти и исправить ошибку!Моя программа добавляет в БД, выводит БД на экран, но не может найти однофамильцев! Ошибка в функции viewConfig(file)
Код:
#include <stdio.h>
#include <string.h>
struct computers
{
int id;
char surname_owner[6];
int number_of_processors; //число процессоров
char type_of_processors[100]; //тип процессоров
int size_memory; //объем памяти
char type_of_video_controller[100]; //тип видеоконтроллера
int size_of_video_buffer; //объем видеопамяти
char type_of_hard_disk[100]; //тип винчестера
int number_of_hard_disk; //число винчестера
char capacity_of_hard_disk[100]; //емкость винчестера
int number_of_integrated_controller; //кол-во интегрированных контроллеров
int number_of_outside_device; //колво внешних устройств
char operational_system[100]; //операционная система
}row[100];
/*int compareStrings( char surname_owner1[], char surname_owner2[])
{
int k=0, answer;
while( surname_owner1[k]==surname_owner2[k] && surname_owner1[k] !='\0' && surname_owner2[k] !='\0' )
++k;
if (surname_owner1[k]==surname_owner1[k])
answer = 0;
//printf("Y\n");
return i;
}
*/
void viewConfig(FILE* file)
{
struct computers one, two;
file = fopen("KRII.txt", "rb");
rewind(file);
fread (&one, sizeof(struct computers), 1, file);
fread (&two, sizeof(struct computers), 2, file);
if(strcmp(one.surname_owner, two.surname_owner)!=0)
{
printf("1\n");
printf("%s %s\n", one.surname_owner, two.surname_owner);
}
}
int main()
{
int n;
char number=0;
FILE *file;
printf("\t\tMENU\n");
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);
if(number=='1')
{
int k;
printf("How much much lines do you want to add?\n");
scanf("%i", &k);
file = fopen("KRII.txt","ab+");
for (int i=0; i<k; i++)
{
printf ("Enter id\n");
scanf ("%d", &row[i].id);
printf ("Enter surname_owner\n");
scanf ("%s", &row[i].surname_owner);
printf ("Enter number_of_processors\n");
scanf ("%d", &row[i].number_of_processors);
printf ("Enter type_of_processors\n");
scanf ("%s", &row[i].type_of_processors);
printf ("Enter size_memory\n");
scanf ("%d", &row[i].size_memory);
printf ("Enter type_of_video_controller\n");
scanf ("%s", &row[i].type_of_video_controller);
printf ("Enter size_of_video_buffer\n");
scanf ("%d", &row[i].size_of_video_buffer);
printf ("Enter type_of_hard_disk\n");
scanf ("%s", &row[i].type_of_hard_disk);
printf ("Enter number_of_hard_disk\n");
scanf ("%d", &row[i].number_of_hard_disk);
printf ("Enter capacity_of_hard_disk\n");
scanf ("%s", &row[i].capacity_of_hard_disk);
printf ("Enter number_of_integrated_controller\n");
scanf ("%d", &row[i].number_of_integrated_controller);
printf ("Enter number_of_outside_device\n");
scanf ("%d", &row[i].number_of_outside_device);
printf ("Enter operational_system\n");
scanf ("%s\n", &row[i].operational_system);
fprintf(file,"%i %s %i %s %i %s %i %s %i %s %i %i %s\n", row[i].id, row[i].surname_owner, row[i].number_of_processors, row[i].type_of_processors, row[i].size_memory, row[i].type_of_video_controller, row[i].size_of_video_buffer, row[i].type_of_hard_disk, row[i].number_of_hard_disk, row[i].capacity_of_hard_disk, row[i].number_of_integrated_controller, row[i].number_of_outside_device, row[i].operational_system);
}
fclose(file);
char number;
scanf("%c", &number);
}
if (number=='2')
{
printf("i surname\tn t_p\tsmem\ttvc\tsvb\tthd\th chd c d oper_system\n");
file = fopen("KRII.txt", "rb");
for(int i = 0; !feof(file); i++)
{
fscanf(file, "%i %s %i %s %i %s %i %s %i %s %i %i %s\n", &row[i].id, &row[i].surname_owner, &row[i].number_of_processors, &row[i].type_of_processors, &row[i].size_memory, &row[i].type_of_video_controller, &row[i].size_of_video_buffer, &row[i].type_of_hard_disk, &row[i].number_of_hard_disk, &row[i].capacity_of_hard_disk, &row[i].number_of_integrated_controller, &row[i].number_of_outside_device, &row[i].operational_system);
printf("%i %s\t%i %s\t%i\t%s\t%i\t%s\t%i %s %i %i %s\n", row[i].id, row[i].surname_owner, row[i].number_of_processors, row[i].type_of_processors, row[i].size_memory, row[i].type_of_video_controller, row[i].size_of_video_buffer, row[i].type_of_hard_disk, row[i].number_of_hard_disk, row[i].capacity_of_hard_disk, row[i].number_of_integrated_controller, row[i].number_of_outside_device, row[i].operational_system);
}
fclose(file);
char number;
scanf("%c\n", &number);
}
if (number=='3')//определение однофамильцев
{
viewConfig(file);
}
return 0;
}