C/C++ code
void input_memo() /* 输入信息,公共接口。 */
{
struct memo m;
clrscr();
fflush(stdin);
printf(" Memname: ");
gets(m.name);
printf(" Memtime: ");
gets(m.event_date);
printf(" Memtext: ");
gets(m.context);
printf(" Memremindtime: ");
gets(m.remind_date);
insert_memo(&m);
}
void insert_memo(struct memo *m) /* 私有接口,用于访问文件,输入信息。 */
{
FILE *fp;
fp=fopen("memo.dat","at+")
fwrite(m,sizeof(struct memo), 1, fp);
fclose(fp);
}
int makename() /* 通过名字查询 */
{
int flag=1;
FILE *fp;
struct memo qq;
char a[50];
clrscr();
if((fp=fopen("memo.dat","rt"))==NULL)
{
printf("No anydate!");
return 0;
}
printf("Please input memname: ");
fflush(stdin);
scanf("%s",a);
printf("\n");
do{
fread(&qq,sizeof(struct memo),1,fp);
if(strnicmp(a,qq.name)==0) //比较一致即输出
{
printf("\nName: %s\nTime: %s\nText: %s\nRemind: %s\n\n",qq.name,qq.event_date,qq.context,qq.remind_date);
flag=0;
}
}while(feof(fp)==0) ;
if(flag!=0)
{
printf("No matching date!!\n");
printf("\n");
}
printf("\nInput anykey back!\n");
getch();
fclose(fp);
return 1;
}
问题是这样的,我运行时共输入两个两次信息,一个名字是BEN 一个是MANDY,之后我用名字来查询刚记录的信息时我输入查询名字BEN可以找到对应结果,但我输入MANDY时就找不到对应信息数据了。
我找了好久都不知道问题在哪,我想应该是读取那出问题了吧```但我原来的代码是没有什么问题的,但今天加了点界面美化的工作后就出了这问题了,不过我肯定问题不在这些后面加的代码上!
希望大家帮我找找问题出在哪呀。。。
|