char 用 if 判断貌似一直出问题,,谁帮忙看看?
void CheckData() /*查询函数*/{
char inName[NUM1];
char inNum[NUM1];
char inTitle[NUM2];
char inWage[NUM2];
ifstream ifile;
ifile.open("WageMessage.dat",ios::binary);
int iDelcount=0;
int j=0;
int p=0;
int iFileLength=0;
char tmpd[128]; /*临时变量(关键词)*/
iFileLength=GetFileLength(ifile); /*调用获得文件长度函数*/
iDelcount=iFileLength/(NUM1+NUM1+NUM2+NUM2);/*获得记录数*/
cout << "现有记录数为 :"<<iDelcount;
cout << endl;
cout <<"请输入查找关键词 :";
cin >>tmpd;
cout <<endl;
try
{ ifile.seekg(0,ios::beg);
if(!ifile.fail())
{
for(int i=0;i<iDelcount;i++)
{
memset(inName,0,NUM1); /*将变量清零*/
memset(inNum,0,NUM1);
memset(inTitle,0,NUM2);
memset(inWage,0,NUM2);
ifile.read(inName,NUM1); /*读取一组信息*/
ifile.read(inNum,NUM1);
ifile.read(inTitle,NUM2);
ifile.read(inWage,NUM2);
j=j+1; /*J用来判断是否到头了*/
if(tmpd==inName||tmpd==inNum) /*判断是否与关键词相同*/
{ cout <<"您所查询的信息为:"<<endl;
cout <<endl;
cout <<"姓名:"<<inName<<endl;
cout <<"工号:"<<inNum<<endl;
cout <<"职位:"<<inTitle<<endl;
cout <<"工资:"<<inWage<<endl;
p=p+1;
}
else p=0;
if(j==iDelcount&&p==0) /*再判断是否到末尾*/
cout <<setw(24)<<"并未检索到有关信息请重新确认后再检索!"<<endl;
}
}
}
catch(...)
{
cout<<"抛出异常";
throw"file error occurred";
ifile.close();
}
ifile.close();
WaitUser();
}
上面设了一个char的tmpd,输入后 在下面 我想用if 来对比是否和信息符合,符合就输出,不符合就执行别的操作,如果到最后都不符合就输出检索不到。 但运行的结果总是检索不到,我读取信息里面明明都有....之前做过一些改动,结果是所有信息都输出了。。。。。我就觉得应该是if这个判断有问题了..这是一个查询功能,附带运行图片....求教
[ 本帖最后由 mxstone 于 2014-8-19 03:19 编辑 ]