2017-09-28 3 views
-1

콘솔의 "while"에서 정수를 읽는 중, 빈 문자열을 입력 할 때 읽기를 중지하는 방법은 무엇입니까? 누군가가 나에게 도움이 경우 콘솔 입력 닫기 C++

while (cin >> index) 
{ 
    if (index >= v.size() || index < 0) 
    { 
     break; 
    } 
    n_v.push_back(v[index]); 


} 

I want it to break when an empty string is read

나는 greatful 일 것이다.

+0

@ user0042 "빈"입력은 줄 바꿈이고 줄 바꿈은 공백이며, (비 문자) 입력 작업은 기본적으로 공백을 앞서는 부분을 건너 뛰므로 차단됩니다. –

+0

int 대신 문자열을 읽고 비어 있는지 확인하십시오. – user463035818

답변

0

문제를 해결하는 방법은 두 가지가 있습니다 : 첫 번째는 사용자가 파일의 끝 키 조합을 입력하는 단순히 (리눅스 나 맥 OS에 일반적으로 윈도우에서 CTRL-ZCTRL-D를) .

다른 하나는 줄 단위로 입력을 읽고 문자열 (모든 공백을 제거한 행)이 비어 있는지 확인하는 것입니다. 그렇지 않으면 문자열을 숫자로 변환하고 코드를 계속 시도하십시오.