2013-11-21 5 views
0

Я пишу консольную программу для класса. Я удовлетворил задание, но хочу прояснить, что является главным образом косметической проблемой. Программа печатает форму на консоли и помещает курсор в место в форме, где пользователь вводит данные. Проблема возникает, когда пользователь нажимает клавишу ввода без ввода данных. Курсор переходит к началу следующей строки. Если пользователь вводит данные после этого, программа работает правильно. Я хочу знать, как я могу переместить курсор, если пользователь не вводит никаких данных. Это код, который считывает одно из значений:Как я могу переместить курсор, если пользователь не вводит данные?

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

также вы можете сделать, если пользователь нажимает enter, строка, которую вы ... будет пустой. это вы можете использовать для обнаружения и исправления ситуации. – Amador

Смежные вопросы