Найти в файле книги заданного автора и вывести их названые и год выпуска на экран - C (СИ)
Формулировка задачи:
Всем привет!
Надо найти в файле книги заданного автора и вывести их названые и год выпуска на экран
Вот что у меня получилось:
Заполняется файл нормально, но результаты поиска не выводит
Помогите, пожалуйста!
Заранее спасибо!
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define FILE_NAME "system.dat"
#define N 3
void main()
{
FILE *f;
int i, year, cnt = 0;
char book[50 + 1], lastName[25 + 1], temp[125 + 1];
if( (f = fopen(FILE_NAME, "w+")) == NULL)
{
printf("Pomulka pru storenni faila %s\n", FILE_NAME);
system("pause");
exit;
}
printf("Fail %s stvoreno yspishno dl9 zapusy!\n\n", FILE_NAME);
for(i = 0; i < N; i++)
{
printf("Knuzka N%d:\n", i + 1);
printf("--------------------------------------------\n");
printf("1. Vvedit nazvy: ");
scanf("%s", &book);
printf("2. Vvedit prizvushe avtora: ");
scanf("%s", &lastName);
printf("3. Vvedit rik vudannja: ");
scanf("%d", &year);
printf("--------------------------------------------\n\n");
fprintf(f, "Knuzka N%d:\n", i + 1);
fprintf(f, "--------------------------------------------\n");
fprintf(f, "1. Prizvuzhe avtora: %s\n", lastName);
fprintf(f, "2. Nazva knuzki: %s\n", book);
fprintf(f, "3. Rik vudannja: %d\n", year);
fprintf(f, "--------------------------------------------\n\n");
}
printf("Vvedit prizvuzhe avtora: ");
scanf("%s", &lastName);
rewind(f);
while(!feof(f))
{
fscanf(f, "%s", &temp);
if (cnt > 0)
{
fgets(temp, 100, f);
printf("Nazva knuzki: %s\n", temp);
fgets(temp, 100, f);
printf("Rik vudannja: %s\n", temp);
cnt--;
}
if (temp == lastName)
cnt = 1;
}
fclose(f);
system("pause");
}Решение задачи: «Найти в файле книги заданного автора и вывести их названые и год выпуска на экран»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define FILE_NAME "system.dat"
#define N 3
void main()
{
FILE *f;
int i, year, cnt = 0;
char book[50 + 1], lastName[25 + 1], temp[125 + 1];
if( (f = fopen(FILE_NAME, "w+")) == NULL)
{
printf("Pomulka pru storenni faila %s\n", FILE_NAME);
system("pause");
exit;
}
printf("Fail %s stvoreno yspishno dl9 zapusy!\n\n", FILE_NAME);
for(i = 0; i < N; i++)
{
printf("Knuzka N%d:\n", i + 1);
printf("--------------------------------------------\n");
printf("1. Vvedit nazvy: ");
scanf("%s", book);
printf("2. Vvedit prizvushe avtora: ");
scanf("%s", lastName);
printf("3. Vvedit rik vudannja: ");
scanf("%d", &year);
printf("--------------------------------------------\n\n");
cnt++;
fprintf(f, "%s", lastName);
fprintf(f, "%s", book);
fprintf(f, "%d", year);
}
fseek(f,0,0);
printf("Vvedit prizvuzhe avtora: ");
scanf("%s", lastName);
rewind(f);
while(!feof(f))
{
fscanf(f, "%s", temp);
if (cnt > 0)
{
fgets(temp, 100, f);
printf("Nazva knuzki: %s\n", temp);
fgets(temp, 100, f);
printf("Rik vudannja: %s\n", temp);
cnt--;
}
if (temp == lastName)
cnt = 1;
}
fclose(f);
system("pause");
}