2 queenie92 Queenie92 于 2013.05.17 17:51 提问

error C2143: 语法错误 : 缺少“;”(在“.”的前面)

在Button函数里调用HuffmanTree1.CreateHfmTree(char Str,int m,int n);
显示错误error C2143: 语法错误 : 缺少“;”(在“.”的前面)

void CHuffmanTreeDlg::OnBnClickedButton1()
{      // TODO: 在此添加控件通知处理程序代码
    UpdateData(TRUE);
    if (m_radio1=1)
    {
    char*pszFileName="C:\C++\HuffmanTree\HuffmanTree\WData.txt";
    CStdioFile myFile;
    CFileException fileException;
  if(myFile.Open(pszFileName,CFile::modeCreate|CFile::typeText|CFile::modeReadWrite),&fileException)
  {   AfxMessageBox("打开成功");
      myFile.SeekToBegin();
      CString str1;
      myFile.ReadString(str1);
      CString str2;
      AfxMessageBox(str1+str2);
     ifstream ifs("WData.txt");
   ofstream ofs("WCode.txt"); 
   char str[1000]; 
   char Str[100]; 
   int i=0,j,m[100],h,k=0; 
  int n=0; 
   char ch; 
   while(ifs.get(ch)) 
      { 
      if(ch!='\n') 
        {str[n++]=ch;}
      for(i=0;i<n;i++) 
       { 
        j=0;h=0; 
        while(str[i]!=str[j]) 
            j++; 
        if(j==i) 
           { 
            Str[k]=str[i]; 

            } 
        else 
            continue; 
        for(j=i;j<n;j++) 
            { 
             if(str[i]==str[j]) 
                h++; 
             }      
        m[k]=h; 
        k++; 
} 
      HuffmanTree1.CreateHfmTree(char Str,int m,int n); 
cin.get();

   m_length=n;
   m_string1="报文的编码已经保存在WCode.txt";
   UpdateData(FALSE);
}
  }
  else
  {
      TRACE("Can't open file%s,error=%u\n",pszFileName,fileException.m_cause);
  }
  myFile.Close();

    }   
}

3个回答

ce_la_vie
ce_la_vie   2013.05.20 10:44

这有可能是一个bug:if (m_radio1=1) (用== 代替 =),但是这并不是语法错误。
这行:if(myFile.Open(pszFileName,CFile::modeCreate|CFile::typeText|CFile::modeReadWri‌​te),&fileException)也有问题,在if语句中用一个逗号表达式。

HuffmanTree1.CreateHfmTree(char Str,int m,int n);

这行也算是函数声明,但是缺少一个return类型,没有对函数进行调用。

amrjlg
amrjlg 就是这里吧,加一个")"在if语句后面就应该可以了
接近 3 年之前 回复
boyzxscn
boyzxscn   2013.06.25 11:09

声明函数要用::
HuffmanTree1::CreateHfmTree(char Str,int m,int n);
定义函数要用{}
HuffmanTree1::CreateHfmTree(char Str,int m,int n)
{
//... ...
}

VisualEleven
VisualEleven   Ds   Rxr 2014.11.05 14:27

char*pszFileName="C:\C++\HuffmanTree\HuffmanTree\WData.txt";
--》
char*pszFileName="C:\C++\HuffmanTree\HuffmanTree\WData.txt";

另外你有#include HuffmanTree1这个类的相关.h头文件吗?

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!