【发布时间】:2013-02-11 09:06:26
【问题描述】:
对不起,如果这很无聊,但我对 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,但由于将函数移动到另一个文件而忘记了。
【问题讨论】:
-
阅读问题的结尾。 ;)
-
这个答案对我有帮助。就我而言,这是因为我删除了另一个包含 fstream 的头文件。解决方案是包含 fstream。
-
不要与
<iostream>混淆。只有<fstream>可以。 -
这个问题不是太本地化。这正好解释了我遇到的问题。
-
+1 用于 OP,包括答案。在合并另一个使用陈旧项目构建的开发人员代码时帮助我,包括未发送给我进行合并。显然不是太局限或太狭窄。
标签: c++ fstream return-type