自已写的单词默写词序,有点问题,找不原因,请高手帮帮忙分析一下
程序先打开word.txt文档,然后把中文读进结构体的a[n].question中,把英文读进结构体的a[n].answer中。然后提示用户输入英文单词,存放到str中,然后用strcmp(a[n].answer,str);比较用户输入的英文单词和a[n].answer中的英文单词是否相同。相同就提示" 恭喜你,答对了!,不同则提示" 抱歉,你答错了!。可是,程序运行后总是提示“ 抱歉,你答错了!” 我打不原因在哪里,请高手帮我分析一下。谢谢!
#include <stdio.h>
#define N 50
typedef struct word{
char question[200];
char answer[200];
}word;
int main()
{
int n = 0;
int i = 0;
int b;
char str[200] = {};
word a[N]; //定义一个结构体数组
FILE *fr = fopen("word.txt","rt"); //打开磁盘上的单词表文件word.txt
if(fr == NULL)
{
printf("打开文件出错。\n");
return 1;
}
while(!feof(fr))
{
fgets(a[n].question,200,fr);//读文件word.txt中的中文到a[n].question中
fgets(a[n].answer,200,fr); //读文件word.txt中的英文到a[n].answer中
++n;
}
for (n=0;n<N;n++)
{
printf(" 第%d题:%s\n",(n+1),a[n].question);// 把a[n].question里的中文显在屏上
printf(" 请输入正确答案:");//提示用户输入英文
gets(str);
b = strcmp(a[n].answer,str); //定义变量b查看strcmp函数返回的值(怀疑是这里出问题)
printf("%d",b); //变量b总是返回1而不返回0
if(strcmp(a[n].answer,str)==0) //(怀疑是这里出问题)
{
printf(" 恭喜你,答对了!\n");
}
else
{
printf(" 抱歉,你答错了!\n");
}
printf("-------------------------------------------------------------------\n");
}
return 0;
}
word.txt中的内容如下:
原谅
excuse
我(宾格)
me
是的
yes
这
this
你的,你们的
your
(女用)手提包
handbag
原谅,请再说一遍
pardon
它
it
感谢你(们)
thank you
非常地
very much
[ 本帖最后由 张超306025 于 2015-6-7 12:28 编辑 ]