私はこのCコードを持っています.私が遭遇する問題は、私が望むようにレコードを見つけることができないということです.ファイル処理を使用すると、常に結果が見つからないと表示されます. システムを明確に動作させ、記録を表示する正しい方法は何ですか?
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdbool.h>
#include <stdlib.h>
#include <windows.h>
void loadMenu();
void addEmployee();
void searchEmployee();
bool found = false;
int choice;
FILE*myrec;
char Name[20],Age[20],IDnum[20],search[20];
void loadMenu(){
printf("[1]Add Employee\t[2]Search Employee\t[3]Exit\nChoice:");
scanf("%d", &choice);
}
void addEmployee (){
char ans;
do{
printf("Enter IDnumber:");
fflush(stdin);
gets(IDnum);
printf("Enter Name:");
fflush(stdin);
gets(Name);
printf("Enter Age:");
fflush(stdin);
gets(Age);
myrec = fopen ("record.txt","a+");
fprintf(myrec,"%s \t %s \t %s \n ",Name,Age,IDnum);
printf("Record Saved !");
printf("Do you want to add another record ? Y/N");
scanf("%s",&ans);
fclose(myrec);
}
while (ans=='Y'||ans=='y');
}
void searchEmployee(){
myrec = fopen("record.txt","a+");
printf("Enter Employee IDnumber:");
scanf("%s",&search);
while(!feof(myrec)){
fscanf(myrec,"%s %s %s",IDnum,Name,Age);
if (strcmp(search,IDnum)==0){
printf("IDnum: %s\n", IDnum);
printf("Name: %s\n",Name);
printf("Age :%s\n",Age);
found = true;
break;
}
}
if(!found) printf("No results.");
fclose (myrec);
}
int main(){
bool repeat = false;
do{
loadMenu();
switch(choice){
case 1:
addEmployee();
break;
case 2:
searchEmployee();
break;
case 3:
repeat = true;
break;
}
}while(!repeat);
getch();
}
私のコードの何が問題なのですか?