2012-11-10 3 views
0

각 파일의 첫 줄을 인쇄하려고하는데 주소를 출력하는 것 같아요.파일에서 줄 인쇄

#include <fstream> 
#include <iostream> 
#include <cstdlib> 

using namespace std; 

void FirstLineFromFile(ifstream files[], size_t count) 
{ 
    const int BUFSIZE = 511;   
    char buf[BUFSIZE]; 

    ifstream *end, *start; 

    for (start = files, end = files + count; start < end; start++) 
    { 
     cout << start->getline(buf, sizeof(buf)) << '\n'; 
    } 
} 

답변

1

스트림을 값으로 전달하면 안됩니다. 이 코드는 값의 배열을 전달합니다. 대신 벡터를 전달하고이를 통해 전달할 수 있습니다.

void FirstLineFromFile(vector<ifstream*> files) { 
    for (int i=0; i<files.size(); ++i) { 
     string s; 
     getline(*files[i], s); 
     cout << s << endl; 
    } 
} 
+0

(시작 = 파일, 파일 끝에 = + 카운트 <시단; ++ 시작) (S * 시작) { \t의 getline 단계; \t cout << s << '\ n'; } – blitzeus

0

ifstream->getline 반환 값으로 문자열을 반환하지 않습니다. 별도의 줄에 채워진 버퍼를 인쇄해야합니다. 위한

for (start = files, end = files + count; start < end; start++) 
{ 
    start->getline(buf, sizeof(buf)); 
    cout << buf << '\n'; 
}