我定义的文本文件格式结构是:typedef struct tag_Point
{
TCHAR str[256];
int num;
int x;
int z;
}Point;文本文件如下:A  1   10  20  
B  2   11  21 
C  3   12  22  
……………
AA 27  36  46
………… …在主程序中来判断一个Edit框输入的字符串是否与文本文件中的某一字符串相同.
TCHAR szBuffer[256];
SendDlgItemMessage(IDC_PLACE,WM_GETTEXT,10,  
                   (LPARAM)(LPSTR)szBuffer) ;for(int i=0; i<NUM; i++, theSys.p++)
{
if(_tcscmp(szBuffer, theSys.p->str) == 0) //找到
{
            do sth
                     break;
}
         if( i == NUM-1)
       ::Messagebox(NULL,_T(“Not Found”),_T(“mess”),MB_OK);// 没有找到
}问题是: 当输入字符串为A-Z类型字符串的时候,程序可以判断;但如果输入AA此类型的字符串,文本文件中明明存在也提示为” Not Found”.哪位能指点指点啊!!很急!谢谢!!!

解决方案 »

  1.   

    函数如下:void CSysConfig::ReadFromData()
    {
    int  i; TCHAR filename[20]=_T("\\DiskC\\house.txt");
    FILE *fp = _tfopen(filename, _T("r") );

    for(i=0;i<NUM;i++,p++)
    fscanf(fp,"%s %d %d %d %d\n",&p->str,&p->num,&p->x,&p->z,&p->flag); p=place;
    fclose(fp);
    }
      

  2.   

    p->flag
    好象结构里没有定义falg啊!
      

  3.   

    不是这个原因.
    现在的程序是这样的:
    fscanf(fp,"%s %d %d %d %d\n",p->str,&p->num,&p->x,&p->z);上面的句子是以前的
      

  4.   

    p=place; 是什么意思?
      

  5.   

    谢拉,p=place是表示指向文件头的意思!