错误 C2143:语法错误:缺少";"(在". "前面)

error C2143:Syntax error: lack of ";" (in front of the ". ")

本文关键字:错误 前面 缺少 C2143 语法      更新时间:2023-10-16

我尝试调用HuffmanTree1.CreateHfmTree(char Str,int m,int n);在按钮功能。当运行它给我错误C2143:语法错误:缺乏";"(在前面的"。") .

它的翻译是:"(;"()

我的代码如下:

void CHuffmanTreeDlg::OnBnClickedButton1()
{      // TODO: 在此添加控件通知处理程序代码
    UpdateData(TRUE);
    if (m_radio1=1)
    {
        char*pszFileName="C:C++HuffmanTreeHuffmanTreeWData.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=%un",pszFileName,fileException.m_cause);
        }
        myFile.Close();
    }   
}
D

这一行:

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

是奇数。它或多或少是一个函数声明,但缺少返回类型。它不是对函数的调用;你不会列出类型。如果你试图调用一个函数,然后删除char,和两个int,也许重命名其他参数。我没有看到代码可以使用的类变量HuffmanTree1 -这使其成为全局变量,或者在此函数之外定义的类变量。你确定这是好的界面设计吗?在参数中传递值给函数通常比使用"全局"变量要好。

您正在尝试调用函数,还是声明它?无论如何,在函数名中使用句点都是无效的,除非您有一个名为HuffmanTree1的变量,该变量引用了具有该成员函数的类。