C ++에서 구분 된 파일 읽기 [복제
-
21-08-2019 - |
문제
이 질문은 이미 여기에 답이 있습니다.
C ++의 탭 구분 파일에서 읽고 각 줄을 레코드로 저장하는 가장 좋은 방법은 무엇입니까? 나는 이것을 돕기 위해 오픈 소스 라이브러리를 찾고 있었지만, 실패하여 내 자신의 글을 써야 할 것 같습니다.
해결책
typedef vector<vector<string> > Rows;
Rows rows;
ifstream input("filename.csv");
char const row_delim = '\n';
char const field_delim = '\t';
for (string row; getline(input, row, row_delim); ) {
rows.push_back(Rows::value_type());
istringstream ss(row);
for (string field; getline(ss, field, field_delim); ) {
rows.back().push_back(field);
}
}
이것은 당신을 시작할 것입니다. 각 행이 같은 수의 필드를 가지고 있는지 확인하는 것은 없습니다. field_delim
, 등.
다른 팁
ioStreams를 사용하는 데 아무런 문제가 없습니다. GetLine과 함께 각 줄을 문자열로 읽은 다음 해당 문자열의 StringStream을 사용하여 필드를 반복 할 수 있습니다.
Wikipedia의 기사에 나열된 도서관이 몇 개 있습니다. csv_application_support.
제휴하지 않습니다 StackOverflow