2017-12-02 16 views
0

ctrl-d를 누를 때까지 사용자 입력을 얻으려고합니다. 내가 맞으면, 컨트롤 d는 cin.eof()가 성공하지 못했는지 확인하려고 했으므로 EOF 신호를 내 보낸다. getline은 (의 getline이를 반환하여 다음C++은 dt에 대한 입력을 요구하지 않습니다.

std::string line; 
while (std::getline(std::cin, line)) 
{ 
    std::cout << line << std::endl; 
} 

: 여기

은 그래서 당신은 EOF까지이 쉽게 단순히 while 루프와의 getline을 사용하여 달성 읽고 싶은 내 코드

string input; 
cout << "Which word starting which year? "; 
while (getline(cin, input) && !cin.eof()) { 
    cout << endl; 
    ... 
    cout << "Which word starting which year? "; 
} 

답변

4

입니다 스트림)을 입력하면, Ctrl+D을 누르면 while 루프에서 벗어납니다.

Windows 및 onLinux에서 EOF가 다른 것으로 트리거된다는 점에 유의해야합니다. 명령 행에서 CTRL+D (* nix의 경우) 또는 CTRL+Z (Windows의 경우)으로 EOF를 시뮬레이트 할 수 있습니다.

+0

현재 수행 중 –

+0

내 코드는 Linux가 아닌 Windows에서 잘 작동합니다 ... – APorter1031

+0

그러면 대답이 업데이트됩니다. –