2012-03-11 7 views
0

파일에는 각 행에 한 쌍의 이름이 있습니다. 이처럼 :C++ ifstream 문자열

존 데이브

앙투안 게르다

사라 수학 할 원하는 것은 하나의 문자열로 쌍을 출력하는 것입니다

등등 .... 이와 같이 :

string pairs[100]; 
ifstream inFile("duom.txt"); 
int n; //how many pairs 

inFile >> n; 
for(int i=1;i<=n;i++){ 
    inFile >> pairs[i]; 
} 

이것은 공간에서 반응하기 때문에 작동하지 않습니다.

getline(inFile,pairs[i]); 

은 코드를 건너 뛰기 때문에 허용되지 않습니다.

제 질문은 : 그 두 개의 이름을 한 문자열로 읽을 가능성이 있습니까?

+0

[ifstream에서 문자열 변수로 줄 읽기] 가능한 복제본 (http://stackoverflow.com/questions/6663131/reading-a-line-from-ifstream-into-a-string-variable) –

답변

3

문제는 getline이 아니므로 작업에 유용하지만 색인 생성은 문제가되지 않습니다. Kerrek SB가 언급 한 바와 같이, 버그가있을 수 : 편집 0

for(int i=0;i < n;i++){ 
    getline(inFile, pairs[i]); 
} 

에서 당신은 시작해야한다. inFile >> n 이후에 줄 바꿈을 건너 뛰십시오. 더미 getline(inFile, pairs[0]);을 추가하면 제거 할 수 있습니다.

+2

그러나,'getline'과'>>'을 혼합 할 때는 조심해야합니다. –

+0

더미를 추가하면 문제가 없습니다. 감사 – RnD