2010-04-05 4 views
4

는 다음 코드를 사용하여 문자열 형 변수에 파일을 줄을 읽으려고 해요 : 나는 String 클래스를 사용하려고하면문자열 형식 변수에 한 줄씩 파일을 읽는 방법은 무엇입니까?

#include <iostream> 
#include <fstream> 


ifstream file(file_name); 

if (!file) { 
    cout << "unable to open file"; 
    exit(1); 
} 

string line; 
while (!file.eof()) { 
    file.getline(line,256); 
    cout<<line; 
} 
file.close(); 

가 컴파일되지 않습니다, 내가 대신 char file[256]를 사용하는 경우에만.

어떻게 줄 단위로 문자열 클래스를 만들 수 있습니까?

+3

참고. 'std :: getline'은 스트림을 반환하고 스트림은 다음과 같이 검사 할 수 있습니다 :'while (file)'; 이것이 올바른 방법입니다. ('eof'에 대한 검사는 그렇지 않습니다.) 참조 : http://punchlet.wordpress.com/2009/12/01/hello-world/ – GManNickG

답변

10

사용 std::getline : 제임스 스트림을 확인하는

std::string s; 
while (std::getline(file, s)) 
{ 
    // ... 
} 
+1

7 초 ... 괜찮습니다. : p – GManNickG

+0

감사합니다! 나는 네임 스페이스 std를 사용하지 않았다. – ufk

+5

@ufk : 아니요, 당신은'istream :: read' 멤버 함수를 사용하고있었습니다; 멤버 함수가 아닌'std :: getline' 함수를 사용해야합니다. –

관련 문제