Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Еще один вопрос от еще одного новичка.  (Прочитано 6756 раз)
0 Пользователей и 3 Гостей смотрят эту тему.
Taurus727
Постоялец

ru
Offline Offline
Пол: Мужской

« : 14-05-2007 15:01 » new

Привет всем. Пару дней как начал изучать С++. Раньше (лет 7 назад Отлично) неплохо писал на ассемблере под платформу Z80 и прочих типа Basic, Focal, Fortran. Вот решил снова вернуться к программированию. Все что имею по С++ это "Полный справочник по С++" Герберта Шилдта. Вроде как неплохая доходчивая книга. А вопрос такой. Не могу понять возможно ли реализовать функциями scanf() или cin>> ограниченный ввод в консольном приложении. То есть  когда я запрашиваю scanf("%d",&a); ввести можно что угодно и любой длины. Уже замучился программным путем ловить ошибки ввода... Есть ли команды в управляющую строку чтобы ограничить ввод например до 2 символов (не обрезка введенной строки до нужного числа) именно чтоб больше даже не печаталось. Или нужно для этого использовать другие функции? Спасибо.
Записан
Sands
Помогающий

ua
Offline Offline

« Ответ #1 : 14-05-2007 16:40 » 

Как по мне, то для такой задачи больше подошол бы цикл наподобии
Код:
#define MAX_LENGTH (5)
char str[5] = {0};
char c = 0;
int i = 0;
while((i < MAX_LENGTH)&&(c = getch()))
{
 strncpy(str,&c,1);
}
хотя может существовать перегруженная версия оператора ввода для cin.
Записан
Taurus727
Постоялец

ru
Offline Offline
Пол: Мужской

« Ответ #2 : 14-05-2007 17:37 » 

Пока не добрался до раздела где говорится о перегрузке функций... А разве getch() ограничивает ввод одним символом? Кажется тоже можно строку ввести, или я ошибаюсь... Щас на работе. Приду домой попробую ваше решение Ага
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 14-05-2007 18:42 » 

Taurus727, getch - сокращение от get character. Для ввода строки использсуется gets(), но лучше использовать fgets(), т.к. gets() никак не ограничивает размер вводимой строки и может случиться переполнение буфера. Доки - очень полезная вещь!
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines