문제

C ++ 프로그램에서 입력을 읽고 있습니다. 먼저 일부 정수, 그리고 문자열. 내가 문자열을 읽으려고 할 때 getline(cin,stringname);, 사용자가 유형하는 줄을 읽지 않습니다. 대신, 사용자가 눌렀을 때부터 빈 줄을 얻습니다. 입력하다 정수를 입력 한 후.

cin>>track.day; //Int
cin>>track.seriesday; //Int
getline(cin,track.comment); //String

어떻게 지울 수 있습니까? cin (cin.clear() 문자열이 "Enter"키로 채워지지 않도록 작동하지 않습니까?

그것은 정상적인 입력 수신이며, 코드 상단에는 특별한 것이 없습니다. 나는 이런 문제가 있었지만 나는 해결해야 할 해결책을 잊었습니다. cin 문자열이 "Enter"키로 채워지지 않도록 어쨌든.

도움이 되었습니까?

해결책

나는 당신의 ints의 Cin이 문장 전에 새로운 줄을 읽지 않는다고 생각합니다. CIN은 공백을 뛰어 넘고 공백을 포함하여 비수분을 만날 때 숫자를 읽는 것을 중지합니다.

그래서:

std::cin >> num1;
std::cin >> num2;
std::cin.ignore(INT_MAX, '\n'); // ignore the new line which follows num2
std::getline(std::cin, sentence);

당신을 위해 일할 수 있습니다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top