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!"라기보다는 줄 바꿈이있을 때 이런 현상이 발생합니다. 이전 행 문자열과 연결되어 인쇄됩니다.
당신은 문자열' "^ D"와 비교하는'오른쪽 CTRL-D와 비교하지 않는 것을 깨달았다합니까? CTRL-D (Linux/Unix 유형 OS에서)는 파일의 끝으로 입력을 끝내므로 (보통) 볼 수는 없습니다. 그리고 그때조차도, 비교는 가치 4의 성격에 대한 것이어야합니다. –