-1

我尝试调用HuffmanTree1.CreateHfmTree(char Str,int m,int n);按钮功能。运行时它给我错误 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();
    }   
}

感谢您的帮助:D

4

2 回答 2

3

这一行:

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

很奇怪。它或多或少是一个函数声明,但缺少返回类型。这不是对函数的调用;你不会列出类型。如果您尝试调用一个函数,则删除char, 和两个int,并可能重命名其他参数。我没有看到HuffmanTree1代码可以使用的类变量——这使它成为全局变量,或者以其他方式定义在该函数之外的变量。你确定这是好的界面设计吗?将值传递给参数中的函数通常比使用“全局”变量更好。

于 2013-05-20T02:42:23.317 回答
1

您是要调用该函数还是声明它?无论哪种方式,在函数名称中包含句点都是无效的,除非您有一个名为 HuffmanTree1 的变量引用具有此成员函数的类。

于 2013-05-20T02:44:19.103 回答