环境 VS2010,调试结果 主函数输入fName(文件名),结果 file erro。但文件已经建好了,而且把r改成w+也没用,怎么解决
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 10//错误单词个数
#define EN 50//单词英文长度
#define CN 50//单词中文长度
#define WN 10//每轮背单词个数
FILE *fp;
int num=0;
typedef struct word //每轮所背单词
{
char English[EN];//每个单词英文
char Chinese[CN];//每个单词中文
}word;
void spell(char *fName,word *core);
word character[WN];//每组单词个数
word fail[N];//每组背完错误单词个数
int main()
{
char choose;
char filename[50];
printf("输入所学单词本文件名\n");
scanf("%s",filename);//本轮学习单词所在文件名
printf("\n下面进入拼写环节\n");
spell(filename,character);//拼写函数
return 0;
}
void spell(char *fName,word *core)
{
int flag;
char try[50];
fp=fopen(fName,"r");
if(fp==0)
{
printf("file erro!\n");
exit(1);
}
fscanf(fp,"%s%s",core[num].English,core[num].Chinese);
while(!feof(fp))
{
num++;
fscanf(fp,"%s%s",core[num].English,core[num].Chinese);
}
fclose(fp);//将本轮学习单词输入数组
for(num=0;num<10;num++)//判断正误
{
printf("%s\n",core[num].Chinese);
printf("请拼写正确单词\n");
scanf("%s",try);
printf("\n");
flag=strcmp(core[num].English,try);
if(flag==0)
num++;
else
{
do{
printf("错误,请重新输入\n");
scanf("%s",try);
flag=strcmp(core[num].English,try);
}while(flag);
}
}
}