我正在尝试为基因测序项目构建16种不同的后缀树。它们正在以主体形式建造
int main()
{
ifstream fp;
fp.open("filepath", ifstream::in);
Tree I(fp);
fp.close();
我正在尝试使用以下代码在我的构造函数中使用它们:
Tree::Tree(ifstream &fp)
{
string current = "";
char* line;
fp.getLine(line, 100); //ignore first line
for(int i=0; i<100; i++)
{
char temp = (char)fp.get();
if(temp=='\n')i--;
else current+=temp;
}
insert(current);
while(fp.good())
{
current = current.substr(1,99);
char temp = (char)fp.get();
if(temp=='\n')temp=(char)fp.get();
if(temp==EOF) break;
current+=temp;
insert(current);
}
}
当我尝试编译时,我在每个使用fp的实例中都会遇到这些错误:
suffix.cpp:在构造函数
Tree::Tree(std::ifstream&)
中:
suffix.cpp:12:错误:无效使用未定义类型struct std::basic_ifstream<char, std::char_traits<char> >
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/iosfwd:89:error:struct std::basic_ifstream<char, std::char_traits<char> >
的声明
suffix.cpp:15:错误:无效使用未定义类型struct std::basic_ifstream<char, std::char_traits<char> >
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/iosfwd:89:error:struct std::basic_ifstream<char, std::char_traits<char> >
的声明
答案 0 :(得分:6)
您是否#included fstream
标题?
答案 1 :(得分:5)
看起来你有#included&lt; iosfwd&gt;而不是&lt; fstream&gt;在您的源文件中。