そのため、ファイルから読み取り、それをスキャンして、ユーザーが入力したタイトルと一致するタイトルがあるかどうかを確認し、既存のすべてのタイトルを title: (title) Author:( の形式で出力する関数を作成する必要があります。姓、名)。一致するタイトルがない場合、見つからないタイトルを出力します。プログラムでタイトルを配列に読み込み、必要な形式で印刷することもできますが、私の問題は、ファイルを検索して一致するタイトルを見つけて印刷することです..プログラムは、5回も一致するタイトルを印刷しません試合があるとき..どんな助けでも大歓迎です...ありがとう...
void findBookByTitle(FILE* fp, char title[])
{
FILE* open = fp;
char title2[200];
char last[200];
char first[200];
int i=0;
while(!feof(fp))
{
fscanf(fp, "%[^;];%[^;];%[^\n]", title2, last, first);
if( strcmp(title2,title)==0)
{
printf("Title: %s\n", title2);
printf("Author: %s,%s\n", last,first);
}
else {
printf("No books match the title: %s\n", title);
}
}
}
テキストファイルには次のように書かれています:
Making The Right Choices; Henry; Mark
Time For Change; Robinson; Chris
Battle For Air; Jetson; Lola
The Right Moves; Henry;Mark
People Today; Robinson; Chris
したがって、ユーザーが本を検索したい場合 Time to change と出力されます author: time for change Author: Henry, Mark しかし、私の関数は、何の本も何度も一致しないと出力するだけです....