2008-10-02 4 views
1

C++ 프로그램에서 입력을 읽습니다. 먼저 일부 정수, 그 다음 문자열. getline(cin,stringname);으로 문자열을 읽으 려 할 때 사용자가 입력하는 줄을 읽지 않습니다. 대신 사용자가 누를 때부터 빈 줄이 표시됩니다. 을 입력하면 정수가 입력됩니다.일부 정수를 C++에서 텍스트 줄 읽기

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

은 어떻게 지울 수 있습니다 cin (cin.clear()이 작동하지 않음) "Enter"키와 문자열 자체를 기입하지 않도록?

그것은 수신 정상적인 입력 코드의 상단에 특별한 아무것도, 나는이 같은 문제를했다하지만 난 어떻게든지해서 문자열이 가득되지 않습니다 않도록 cin을 취소하는 데 필요한 솔루션 을 했네요 "를 입력 "열쇠.

+0

귀하의 질문에 대한 작동 할 수 이해하기 어렵다. 명확히하십시오. – Lev

+0

그리고 코드 스 니펫 – Kena

+0

코드를 붙여 넣을 수 있습니까? 또한 어떤 컴파일러를 사용하고 있으며 어떤 플랫폼에 있습니까? – dguaraglia

답변

2

int의 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); 

당신이

+0

네, 정말 고마워요! –