错误 C2143:语法错误:缺少";"(在". "前面)
error C2143:Syntax error: lack of ";" (in front of the ". ")
我尝试调用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的变量,该变量引用了具有该成员函数的类。
相关文章:
- 警告处理为错误这里有什么问题
- "error: no matching function for call to"构造函数错误
- boost::进程间消息队列引发错误
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- QT在错误的班级中寻找空位
- vector.resize()中的分配错误
- 代码在main()中运行,但在函数中出现错误
- 释放错误后堆使用
- (C++)分析树以计算返回错误值的简单算术表达式
- Project Euler问题4的错误解决方案
- 我的字符计数代码计算错误.为什么
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 尝试导入pybind-opencv模块时出现libgtk错误
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- 在某些循环内使用vector.push_back时出现分段错误
- 具有相同名称的方法和内部类(错误:.. 与前面的声明冲突)
- C++-错误C2144语法错误:'int'前面应加上';'
- 错误 C2143:语法错误:缺少";"(在". "前面)
- 从函数返回字符串时,如果字符串前面有和结束行,则会错误地打印出来