2013-11-21 11 views
0

클래스 용 콘솔 프로그램을 작성 중입니다. 나는 과제를 만족하지만, 나는 대체로 외관상의 문제를 해결하고 싶습니다. 이 프로그램은 양식을 콘솔에 인쇄하고 사용자가 데이터를 입력하는 양식의 위치에 커서를 놓습니다. 사용자가 데이터를 입력하지 않고 Enter 키를 누르면 문제가 발생합니다. 커서가 다음 행의 시작 부분으로 이동합니다. 이 후에 사용자가 데이터를 입력하면 프로그램이 올바르게 작동합니다. 사용자가 아무런 데이터도 입력하지 않으면 어떻게 커서의 위치를 ​​바꿀 수 있는지 알고 싶습니다. 이 값 중 하나를 읽는 코드입니다 :사용자가 데이터를 입력하지 않으면 어떻게 커서 위치를 바꿀 수 있습니까?

void getHousing(HANDLE screen, MonthlyBudget &inputBudget) { 
      placeCursor(screen, HOUSING_ROW, ACTUAL_COL); 
     cin >> inputBudget.housing; 
     while (!validateEntry(screen, inputBudget.housing)) { 
        placeCursor(screen, HOUSING_ROW, ACTUAL_COL); 
        cout << SEVEN_SPACES << endl; 
        placeCursor(screen, HOUSING_ROW, ACTUAL_COL); 
        cin >> inputBudget.housing; 
     } 
} 

답변

1

난 당신이 입력 작업의 결과를 확인한다고 생각합니다.

if(cin>>inputBudget.housing) 
{ 
      //input ok 
} 
else 
    { 
     //input failed 
    } 
+0

입력을 시도하면 어떻게됩니까? – user3017428

+0

무엇? 입력 실패 - eof를 확인하고 실패한 상태를보고 그에 따라 행동하십시오 .. – Amador

+0

사용자가 입력 할 경우 입력 할 수있는 문자열이 비어있게됩니다. 이 상황을 감지하고 수정하는 데 사용할 수 있습니다. – Amador

관련 문제