2014-12-31 2 views
0

나는 인터넷을 검색하여 시간에 대한 설명서를 읽을 수 있지만 나는이 일을 알아낼 수 없습니다 :C++의 getline 패스 파일 또는 CIN

내 프로그램은 파일 이름 하나 개 선택적 인수를 가져옵니다. 이 조건 기능 processInput 내가 입력에서 모든 행을 읽고 같은 그들과 함께 일 할 노력하고있어에서

std::ifstream file; 

if (argc > 1) { 
    file.open(argv[1]); 
} 

if (file.is_open()) { 
    processInput(file); 
    file.close(); 
} else { 
    processInput(std::cin); 
} 

고려 :

void processInput(std::basic_istream<char> inputStream) { 
    std::string line; 
    while (std::getline(inputStream, line)) { 
     processLine(line); 
    } 
} 

를하지만 이건 basic_istream에 오류를 받고 있어요, 그래서 이 함수에 어떤 유형을 전달해야하는지 전혀 알지 못합니다. 나는 블라인드 샷만을 시도했다.

+1

가 _ "나는'basic_istream'에서 오류를 받고 있어요"입니다 std::basic_istream<char>를 작성하는 짧은 방법있다 - 게시물을 수정하고 _exact_ 오류를 포함하십시오. –

답변

7

스트림을 복사 할 수 없습니다. 당신은 참조로 스트림을 통과해야 : 그건 그렇고

//           v-- here 
void processInput(std::basic_istream<char> &inputStream) { 

, _

void processInput(std::istream &inputStream) {