2013-05-13 3 views
2

내 코드는 키보드에서 여러 줄을 읽어야했습니다. 내가 여기있는 코드가 그 일을합니다. 코드는 다음과 같습니다.입력으로 키보드에서 여러 줄 읽기

#include <iostream> 

using namespace std; 

int main() 
{ 

string input; 
string line; 

cout<< "Enter the input line" << endl; 

while (getline(cin, line)) 
{ 
    if (line == "^D") 
     break; 

    input += line; 
} 

cout<< "The input entered was: "<<endl; 
cout<< input<< endl; 

} 

출력이 실행 된 후에 나타납니다.

Enter the input line 
Hello 
World ! 
The input entered was: 
HelloWorld ! 

문제점 : 보시다시피, getline은 Hello World를 인쇄 할 때 공백을 제공합니다. "Hello World!"로 인쇄되는지 확인하는 방법 "HelloWorld!"라기보다는 줄 바꿈이있을 때 이런 현상이 발생합니다. 이전 행 문자열과 연결되어 인쇄됩니다.

+1

당신은 문자열' "^ D"와 비교하는'오른쪽 CTRL-D와 비교하지 않는 것을 깨달았다합니까? CTRL-D (Linux/Unix 유형 OS에서)는 파일의 끝으로 입력을 끝내므로 (보통) 볼 수는 없습니다. 그리고 그때조차도, 비교는 가치 4의 성격에 대한 것이어야합니다. –

답변

4

이 시도

while (getline(cin, line)) { 
    if (line == "^D") 
     break; 

    input += " " + line; 
}