텍스트 파일을 검색하고 제목 다음에 데이터를 추출합니다. 그러나, 나는 극복하는 방법을 모르는 반복자에 관한 몇 가지 이슈를 가지고있다.텍스트 파일에서 데이터 찾기 및 추출
이 샘플 텍스트 파일입니다 LoadData<bool> something.LoadData("Relay States");
를 호출하고 0,0,0,0 {가진 표준 : : 벡터를 반환 한 이상적으로
Relay States 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
가, 내가 좋아하는 것, 0,0,0,0, ...}. 내가 이해에서
template<typename T> std::vector<T> CProfile::LoadData(const std::string& name)
{
std::ifstream ifs(FILE_NAME);
std::vector<T> data;
std::istreambuf_iterator<char> iit = std::istreambuf_iterator<char>(ifs);
std::search(iit, ifs.eof(), name.begin(), name.end());
std::advance(iit, name.size() + 1);
T buffer = 0;
for(ifs.seekg(iit); ifs.peek() != '\n' && !ifs.eof(); data.push_back(ifs))
{
ifs >> buffer;
data.push_back(buffer);
}
return data;
}
, 내 코드의 주요 문제는 다음과 같습니다
- 표준 : 검색 모호한 호출입니다,이 고정에 대해 어떻게 갈 것인가?
- ifs.seekg (iit)가 합법적이지 않은 경우 유효한 인수를 만드는 방법은 무엇입니까?
감사합니다.
는 헤더와 데이터는 별도의 줄에 항상 있는가? 표시된 샘플과 같이 별도의 라인에있는 데이터입니까? 데이터의 양이 항상 같은가, 또는 얼마나 많은 양을 추적하고 있습니까? –
데이터가 2D 배열에서 오는 경우 정확히 위와 같습니다. 다운로드 할 수있는 양을 결정하려면 제목 이름과 "\ n \ n"사이를 읽어야합니다. 데이터 다음에는 항상 \ n 두 개가 있습니다. –