Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Как ограничить кол-во вводимых символов? |
Автор: Izzy 12.12.2002, 06:14 |
Это под досом, давно не пользовался и забыл ![]() Есть массив, в него юзеру надо ввести некоторое кол-во символом, но не больше определённого и не меньше. Вообщем сам вопрос, как сделать так, что бы нельзя было просто ввести больше? |
Автор: neutrino 12.12.2002, 18:34 |
В какой массив? Строку? Используй функцию gets(). А если у тебя массив целых или других чисел, то сам проверяй в цикле. |
Автор: Lobsang 12.12.2002, 19:21 |
В любом случае раз числа значит проверяй в цикле. Коли целые, так дели на цело на 10, смотри осталось ли что в целой части, увеличиваешь счетчик на 1. и так пока в целой части не окажется 0 Прокрутил весь цикл, проверил счетчик. Если его значение совпадает с заданным тобой - ввод разрешаешь, нет - выводишь собщение о нарушении. |
Автор: suborg 13.12.2002, 03:46 |
Кстати, насчет цифр в целом числе - у меня тут идея родилась только что не совсем в тему, но всё же: число цифр можно определить одной строчкой, код будет более тормозной, но если это не сильно важно, получится красиво ![]() n=int(log(i))+1; где i - целое число, а n - количество цифр в этом числе. |
Автор: DrMasik 13.12.2002, 08:33 |
![]() |
Автор: Dagger 13.12.2002, 09:22 |
2Max ![]() ![]() |
Автор: Izzy 14.12.2002, 08:45 |
Вообщем вот что я спрашивал ![]() Например массив символов char buff [10]; cout << "Вопрос"; cin >> buff; // и вот тут запретить юзеру ввести больше 9 символов ![]() |
Автор: DrMasik 14.12.2002, 08:59 |
![]() Считываем не более 20 символов: scanf("%20s@); |
Автор: DrMasik 14.12.2002, 09:01 |
И еще, Иззи, не мучайся с массивами типа char. ни к чему хорошему не приведет - а пользуйся стандартой прибомбамой - тип string. ![]() |
Автор: Dagger 14.12.2002, 09:15 | ||
Оффтопик: А над ним можно выеживать то же, что и с char (функц., типа strstr, strchr,strcmp)? |
Автор: DrMasik 16.12.2002, 09:01 |
Даггер, дело в том, что тип string, во-первых коннектится с помощью #include <string> и желательно использовать, после инклудников, using namespace std; Хотя можно и без этого... А по поводу там длин строк и т.д. - это делается так. Допустим есть переменная VAR данного типа, тогда: VAR.length(); Вот те и длина. Вобщем прибамбасов там уйма (почти), так что открывай MSDN и учи английский ![]() |
Автор: Dagger 16.12.2002, 09:26 |
А этот тип работает в UNIX-системах. Если нет, то его использовать нет никакого смысла ![]() |
Автор: DrMasik 16.12.2002, 09:29 |
Работает. еще и как работает! ![]() |