Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

В консольном приложении нужно ограничить ввод данных по типу Ф. И. О. не более 25 символов, с пробелами. Для этого нужно написать textbox или можно без него?если без него то как?

93K
10 апреля 2014 года
adherent
1 / / 10.04.2014
В консольном приложении нужно ограничить ввод данных по типу Ф. И. О. не более 25 символов, с пробелами. Для этого нужно написать textbox или можно без него?если без него то как?
1.8K
11 апреля 2014 года
Arkady
153 / / 18.12.2007
Не получится. Ввод из std::cin следует рассматривать как данность, так как поток - слишком абстрактная штука. Стандартный входной поток может быть не только консолью, но и файлом, и выводом другой программы, и ещё много чем другим. Если программа запущена командной строкой app.exe, то поток std::cin будет "присоединён к клавиатуре". Если же app.exe < some.txt, то чтение из std::cin будет чтением из файла some.txt. Кстати, обратите внимание, как это удобно для отладки (набивки тестовых данных).

Разработчики потоков добивались, чтобы с любыми устройствами ввода-вывода можно было работать единнообразно. Поэтому в std::istream и не включены предоставляемые консолью расширенные возможности ввода (в частности то, чего вы хотите - ограничение количества вводимых символов). Ведь такую же штуку с файлом, например, провернуть уже не удасться. Не может же программа повлиять на то, что прочтётся из файла, если этот файл уже существовал к моменту её запуска (а может существовал и до того, как программу начали писать).

Источник: http://forum.ixbt.com/topic.cgi?id=26:37498
Минусую за негугление.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог