2013-03-21 3 views
0
내 C와 함께 읽고 있어요

++ 프로그램 csv 파일을 뛰어C++의 getline()는 빈 문자열을 통해

while(getline(in, str, '\n')){ 
     stringstream ss; 
     while(getline(ss, str, ';')){ 
     line.add(str); 
     } 
    } 
의 입력 파일이

, str 문자열 변수입니다 선은 내 컬렉션 (예 : vector)입니다. 그러나 getline은 csv 파일의 빈 문자열을 뛰어 넘었습니다.

빈 문자열을 읽는 사람도 도와 줄 수 있습니까?

고마워요 :)

+0

어떻게 당신이 그것을 뛰어 있음을 알 수 있습니까? 어쨌든 라인이 비어 있으면 두 번째 루프에 들어 가지 않습니다. – aram90

+0

aram90 : 나는 독서의 수를 세는 임시 변수가 있고 나의 목록에는 단지 2 개의 문자열 만있다. –

답변

2

스트림을 초기화 한 적이 없습니다.

이 시도 :

#include <string> // for std::string and std::getline 
#include <sstream> // for std::istringstream 

for (std::string jimbob; std::getline(in, jimbob);) 
{ 
    std::istringstream marysue(jimbob); // ! 
    for (std::string charlie; std::getline(marysue, charlie, ';');) 
    { 
     line.add(charlie); 
    } 
} 
+0

이것으로 이전에 초기화했습니다 : ifstream in (inFileName); if (in.fail())가 false를 반환하면; 괜찮습니다. 코드와 같은 그러나 컴파일러 나던 :( 오류 님의 전화 '표준 : basic_istringstream :: basic_istringstream (표준 : : ifstream)' –

+0

예, 포함에 대한 일치하는 기능은 –

+0

당신은 완전히 다른 뭔가를하고있는 것 같다 내 코드에는'ifstream'이 전혀 없습니다.''in ''으로 잘못 입력 했습니까? 변수 이름을 바꾸겠습니다. –

관련 문제