: 그래서빠른, 내가 같은 형식의 데이터로, 단순한 CSV 파일을 구문 분석하려고 C에서 간단한 CSV 구문 분석 ++
20.5,20.5,20.5,0.794145,4.05286,0.792519,1
20.5,30.5,20.5,0.753669,3.91888,0.749897,1
20.5,40.5,20.5,0.701055,3.80348,0.695326,1
, 매우 간단하고 고정 된 형식 파일. 이 데이터의 각 열을 STL 벡터에 저장합니다. 따라서 나는 표준 라이브러리를 사용하여 C++ 상태를 유지하기 위해 노력했습니다, 그리고 루프 내에서 내 구현은 다음과 같은 :
, 이것은 매우 느린 문제가string field;
getline(file,line);
stringstream ssline(line);
getline(ssline, field, ',');
stringstream fs1(field);
fs1 >> cent_x.at(n);
getline(ssline, field, ',');
stringstream fs2(field);
fs2 >> cent_y.at(n);
getline(ssline, field, ',');
stringstream fs3(field);
fs3 >> cent_z.at(n);
getline(ssline, field, ',');
stringstream fs4(field);
fs4 >> u.at(n);
getline(ssline, field, ',');
stringstream fs5(field);
fs5 >> v.at(n);
getline(ssline, field, ',');
stringstream fs6(field);
fs6 >> w.at(n);
입니다 (데이터 당 1 백만 행이 파일), 그리고 나는 약간 우아하지 않은 것 같습니다. 표준 라이브러리를 사용하는 더 빠른 접근법이 있습니까? 아니면 그냥 stdio 함수를 사용해야합니까? 이 전체 코드 블록이 단일 fscanf 호출로 줄어들 것 같습니다.
미리 감사드립니다.
중복 :
당신은 다음 문자열을 구문 분석 같은 것을 할 수 http://stackoverflow.com/questions/1120140/csv-parser-in-c –
C CSV 파서 : http://sourceforge.net/projects/cccsvparser C CSV 작성자 : http://sourceforge.net/projects/cccsvwriter – SomethingSomething