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

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

Войти
Регистрация
Восстановить пароль
 
VipeR_SeD
0 / 0 / 0
Регистрация: 05.05.2013
Сообщений: 9
#1

Окончание ввода - C++

05.05.2013, 10:20. Просмотров 445. Ответов 6
Метки нет (Все метки)

Здравствуйте. Возникла проблема как окончить заполнение вектора по нажатию определенной клавиши? (В данном случае "Enter".

C++
1
2
3
4
5
6
do
    {
    cin >> q;
    Mass.push_back(q);
    }
    while(q!='\n');
Собственно что должно быть в while() ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.05.2013, 10:20     Окончание ввода
Посмотрите здесь:

Неожиданное окончание файла C++
C++ Подобрать верное окончание числительного
Определить окончание существительного в зависимости от введенного количества C++
Окончание слова - xyz (СИ) C++
C++ Ввести последовательность чисел (окончание ввода - 0) и вывести их вобратной последовательности
Как спростить код ? рекурсия (ввести последовательность чисел (окончание ввода - 0) и вывести их вобратной последовательности) C++
Окончание связанного списка C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Svyatoslav7
18 / 18 / 8
Регистрация: 19.08.2012
Сообщений: 281
05.05.2013, 11:11     Окончание ввода #2
што б закончить програму на Enter необходимо сначало сканировать нажатие клавиш ..... тогда взять скан код клавиши Enter .... у вашем случае
C++
1
while(k!=13)
k - ето отканованая клавиша наша.... в нашем случае ето Enter

Добавлено через 7 минут
но как сканировать клавишу я не вкурсе( только начал изучать с++
VipeR_SeD
0 / 0 / 0
Регистрация: 05.05.2013
Сообщений: 9
05.05.2013, 12:24  [ТС]     Окончание ввода #3
Видел где-то подобное
Код
while((cin)!='\n')
Но так не подходит.
Как что то подобное сделать?
Bend3r
149 / 136 / 18
Регистрация: 29.07.2012
Сообщений: 709
05.05.2013, 12:44     Окончание ввода #4
Вы хотите чтоб цикл останавливался когда пользователь нажмет Enter как-то так?
Somebody
2781 / 1595 / 143
Регистрация: 03.12.2007
Сообщений: 4,179
Завершенные тесты: 1
05.05.2013, 13:08     Окончание ввода #5
C++
1
2
3
4
do
{
...
} while (cin.get() != '\n');
Это?
VipeR_SeD
0 / 0 / 0
Регистрация: 05.05.2013
Сообщений: 9
05.05.2013, 13:18  [ТС]     Окончание ввода #6
Цитата Сообщение от Somebody Посмотреть сообщение
C++
1
2
3
4
do
{
...
} while (cin.get() != '\n');
Это?
Да,спасибо

Но почему при выполнении:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>;
 
#include <vector>;
 
using namespace std;
 
int main ()
{
    setlocale(LC_ALL,"Rus");
    vector<char>Mass;
    char q;
    int i,o=0;
    cout << "Добро пожаловать в программу!" << endl;
    cout << "Введите символы для заполнения вектора." << endl << "Остановка заполнения происходит при нажатие на 'Enter'." << endl;
    do
    {
    cin >> q;
    Mass.push_back(q);
    }
    while (cin.get() != '\n');
    cout << "Test";
}
Не выдает "тест"? Где то ошибка?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.05.2013, 18:04     Окончание ввода
Еще ссылки по теме:

C++ Окончание файла
Окончание W и A в функциях C++
C++ Окончание ввода в vector<int> по '\n'
C++ Проверка на окончание файла
Задача про окончание уроков C++

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

Или воспользуйтесь поиском по форуму:
Somebody
2781 / 1595 / 143
Регистрация: 03.12.2007
Сообщений: 4,179
Завершенные тесты: 1
05.05.2013, 18:04     Окончание ввода #7
Не знаю, всё нормально выдаёт.

Добавлено через 4 часа 37 минут
А, не обратил внимания, что там char'ы вводятся - тогда тут get() съедает символы. Надо или peek() вместо get(), или если нужны все символы вместе с пробельными, то вводить их не >>, а get()'ом, и тогда можно сравнивать q с '\n'.
Yandex
Объявления
05.05.2013, 18:04     Окончание ввода
Ответ Создать тему
Опции темы

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