У меня есть указатель char * panimal_name
. Этот указатель должен иметь возможность принимать только 20 символов, и если пользователь вводит больше, он должен попросить пользователя повторно ввести.Подтвердить длину символа char *, взятого из std :: cin
Я пробовал считать символы в потоке, а также использовать strlen()
, однако у меня все еще возникают проблемы.
cout << "Enter Animal Name: ";
cin.ignore();
cin.getline(panimal_name, 20);
Любая помощь будет принята с благодарностью.
EDIT: Ну, я всего лишь хочу, чтобы у пользователя было не более 20 символов. Если это значение 20 превышено, он должен попросить пользователя повторно ввести действительный ввод. Однако в этой настройке он теперь испортил поток для моих следующих входов. Причина, по которой я использую это, а не std::string
, заключается в том, что я изучаю указатели на данный момент.
P.S. Я знаю, что строка, вероятно, будет лучше в этой ситуации для удобства использования.
Какие проблемы вы с? – theglauber
Есть ли причина, почему вы не используете строку? – DumbCoder
@ DumbCoder: по какой-то причине школы и университеты абсолютно не хотят, чтобы учащиеся использовали строковые типы данных. Они повторяют мантру «char *». (Кроме того, почти нет упоминания о какой-либо части STL) –