很抱歉,如果这有点笨拙,但是我对C ++还是很陌生。我正在尝试打开文件并使用读取它ifstream
:
vector<string> load_f(string file) {
vector<string> text;
ifstream ifs(file);
string buffer, str_line;
int brackets = 0;
str_line = "";
while ( getline(ifs, buffer) ) {
buffer = Trim( buffer );
size_t s = buffer.find_first_of("()");
if (s == string::npos) str_line += "" + buffer;
else {
while ( s != string::npos ) {
str_line += "" + buffer.substr(0, s + 1);
brackets += (buffer[s] == '(' ? 1 : -1);
if ( brackets == 0 ) {
text.push_back( str_line );
str_line = "";
}
buffer = buffer.substr(s + 1);
s = buffer.find_first_of("()");
}
}
}
return text;
}
但是,出现以下错误,我不确定如何解决:
variable 'std::ifstream ifs' has initializer but incomplete type
答案非常感谢。请注意,我从未忘记过#include <fstream>
,因为许多人由于忘记包括标头而出现了错误。
编辑:
原来我确实忘记了包含fstream
,但是由于将函数移到另一个文件而忘记了。
9
阅读问题的结尾。;)
—
beakr
这个答案帮助了我。就我而言,这是因为我删除了另一个包含fstream的头文件。解决方案是包括fstream。
—
2014年
并且不要与混淆
—
约阿希姆W
<iostream>
。只有<fstream>
会做。
这个问题不是太本地化。这正好解释了我遇到的问题。
—
Syndog 2014年
为OP +1,包括答案。合并用过时的项目构建的其他开发人员代码时为我提供了帮助,但合并时没有发送给我。显然不要太局限或狭窄。
—
Kenigmatic