Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
#1

Стримовые строки - C++

15.03.2010, 12:45. Просмотров 478. Ответов 8
Метки нет (Все метки)

Есть стрим, например,
C++
1
cin
. Надо узнать число символов от последнего ведённого до конца строки.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.03.2010, 12:45     Стримовые строки
Посмотрите здесь:

В функции, для каждой строки матрицы M[n][k], максимальный элемент поменять местами с первым элементом строки C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CheshireCat
Эксперт С++
2891 / 1240 / 78
Регистрация: 27.05.2008
Сообщений: 3,340
15.03.2010, 14:29     Стримовые строки #2
В общем случае - никак. Например, для cin - пользователь нажимает кнопки на клавиатуре.... и когда ему заблагорассудится нажать ENTER - это заранее программно определить невозможно.
outoftime
║XLR8║
506 / 428 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
15.03.2010, 18:49     Стримовые строки #3
CheshireCat, а можно как-то подключится к буферу, в который пользователь "набирает текст" до нажание на ввод??
CheshireCat
Эксперт С++
2891 / 1240 / 78
Регистрация: 27.05.2008
Сообщений: 3,340
15.03.2010, 22:57     Стримовые строки #4
outoftime, тут засада в том, что даже подключение к этому буферу не дает рррровно никакой информации от будущих событиях - таких, как нажатие ENTER....... поэтому "узнать число символов от последнего введенного до конца строки" - т.е. от достоверно известного события ввода последнего символа до когда-нибудь будущего события нажатия ENTER - невозможно. Невозможно достоверно предсказать будущее, короче.
outoftime
║XLR8║
506 / 428 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
15.03.2010, 23:06     Стримовые строки #5
CheshireCat, ок, судя по всему вы меня не поняли. Не знаю правда можно ли так сделать, суть в том, что-бы на событие нажатия любой клавиши заново пересчитыватт длину строки для "буфера", тогда при изменении строки до нажатия на ВВОД, мы сможем сказать текущую длину строки, или другими словами количество символов, введенных на данный момент.

Каксательно формы на си-шарпе это легко, а вот что делать с консолью на с++..

Добавлено через 2 минуты
Еще так можно обьяснить: текст, который мы вводим консоль где-то хранится до нажатия на ВВОД, если найти это "где-то" и смотреть что там лежит может получиться
Manjak
269 / 175 / 7
Регистрация: 12.03.2010
Сообщений: 494
16.03.2010, 01:17     Стримовые строки #6
А от количества знакомест в строке в текстовом режиме отнять номер текущего символа не проще?
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
16.03.2010, 05:05  [ТС]     Стримовые строки #7
Цитата Сообщение от CheshireCat Посмотреть сообщение
В общем случае - никак. Например, для cin - пользователь нажимает кнопки на клавиатуре.... и когда ему заблагорассудится нажать ENTER - это заранее программно определить невозможно.
Не заранее. По условию задачи Enter уже нажат. Где? Под введённым символом понимаю не набранный на клаве, а прочитанный из её потока.

Добавлено через 3 минуты
Цитата Сообщение от Manjak Посмотреть сообщение
А от количества знакомест в строке в текстовом режиме отнять номер текущего символа не проще?
Где взять обе величины?
Manjak
269 / 175 / 7
Регистрация: 12.03.2010
Сообщений: 494
16.03.2010, 15:16     Стримовые строки #8
Экран в текстовом режиме разделен на 25 строк и 80 столбцов. А длину уже введенной строки сосчитать не сложно.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
17.03.2010, 06:18  [ТС]     Стримовые строки #9
Проблема решена в изменённой поставновке: есть поток, в нём нажата enter, прочитаны символы, надо определить, нажата ли enter сразу после последнего прочитанного символа. Этот вариант мне подошел.
Yandex
Объявления
17.03.2010, 06:18     Стримовые строки
Ответ Создать тему
Опции темы

Текущее время: 21:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru