이것이 꽤 멍청한 경우 미안하지만 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을 포함하는 것이 었습니다.
—
Andres Riofrio 16:25에
그리고와 혼동하지 마십시오
—
Joachim W
<iostream>
. 만 <fstream>
할 것입니다.
이 질문은 너무 현지화되지 않았습니다. 이것은 내가 겪고있는 문제를 정확하게 설명했습니다.
—
Syndog
답변을 포함하여 OP의 경우 +1 오래된 프로젝트로 빌드 된 다른 개발자 코드를 병합 할 때 병합을 위해 나에게 보내지 않았습니다. 분명히 너무 국지적이거나 좁지 않습니다.
—
Kenigmatic 2016 년