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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
Pepsy
47 / 32 / 4
Регистрация: 05.01.2013
Сообщений: 307
#1

Считывание чисел до нажатия Enter - C++

22.07.2013, 23:13. Просмотров 1768. Ответов 5
Метки нет (Все метки)

Нужна функция, благодаря которой цикл будет выполнятся до нажатия Enter.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.07.2013, 23:13     Считывание чисел до нажатия Enter
Посмотрите здесь:

Ввод символов без нажатия Enter'а C++
C++ Обработка нажатия клавиши без подтвержения enter
Ввод данных без нажатия Enter C++
Остановить считывание scanf по нажатии <enter> C++
Ввод данных без нажатия «Enter» C++
Закрывается, а не выполняется программа после нажатия enter C++
Динамический массив. Заполнение до нажатия Enter C++
C++ Бесконечный цикл с ожиданием нажатия enter
Проверка нажатия enter C++
C++ Стоп после нажатия на Enter
C++ Продолжение без нажатия на Enter
Остановить ввод после нажатия клавиши enter C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
akk
 Аватар для akk
44 / 44 / 7
Регистрация: 28.01.2012
Сообщений: 341
23.07.2013, 00:31     Считывание чисел до нажатия Enter #2
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <conio.h>
using namespace std;
int main(void)
{
    int ch;
    while((ch=_getch())!=13)
    {
        cout<<ch-48<<"  ";
    }
}
zybrzybr
 Аватар для zybrzybr
17 / 16 / 0
Регистрация: 29.09.2010
Сообщений: 156
23.07.2013, 01:19     Считывание чисел до нажатия Enter #3
а если нужна фукция которая завершается ДО нажатия на Enter, т.е. спрашивает "выйти? (q/n)" пользователь жмяк на q и она сразу выходит без '\n'

пробывал заданным количеством из потока читать не получается((( что то еще недопонимаю...

C++
1
cin.get(c,1);
C++
1
fgets(c,1 или 2, stdin)
там (size-1)
все передают управление следующему опретору после нажатия на ентер. (кроме первого, если не обшибаюсь)

Добавлено через 13 минут
сам нашел
C++
1
ch = getch()
считывает один смвол и передает управление на следующую строку.
alsav22
5410 / 4806 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
23.07.2013, 02:26     Считывание чисел до нажатия Enter #4
Цитата Сообщение от zybrzybr Посмотреть сообщение
ch = getch()
Тогда уж просто:
C++
1
getch();
Pepsy
47 / 32 / 4
Регистрация: 05.01.2013
Сообщений: 307
23.07.2013, 07:33  [ТС]     Считывание чисел до нажатия Enter #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
vector <int> num;
int i;
    while((i=_getch())!=13)
    {   
        if(i!=32)
        {
            cout<<i-48;
            num.push_back(i-48);
        }
        else cout<<" ";
    }
    vector <int>::iterator cur;
    for(cur=num.begin(); cur!=num.end(); cur++)
    {
        cout<<*cur<<endl;
    }
вот код, но есть но: после нажатия Enter на экран выводит 1 цифру, и еще в векторе нету 1 цифры при его выводе.
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12501 / 7063 / 793
Регистрация: 27.09.2012
Сообщений: 17,447
Записей в блоге: 2
Завершенные тесты: 1
23.07.2013, 08:55     Считывание чисел до нажатия Enter #6
Первое что пришло в голову:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <vector>
#include <cctype>
 
void Input ( std::vector < int > & vec ) {
    int currentValue;   
    while ( std::cin >> currentValue ){
        vec.push_back ( currentValue ) ;
        while ( true ){
            if ( isspace(std::cin.peek ( ) ) ) {
                if ( std::cin.get ( ) == '\n' ) {
                    return;
                }
            } else {
                break ;
            }
        }
 
    }
}
 
 
int main ( ) {
    std::vector < int > numberCollection ;
    Input ( numberCollection ) ;
    for ( std::vector < int > ::iterator it = numberCollection.begin ( ) ; it != numberCollection.end ( ) ; ++it )
        std::cout << *it << " " ;
    std::cout << std::endl;
}
Yandex
Объявления
23.07.2013, 08:55     Считывание чисел до нажатия Enter
Ответ Создать тему
Опции темы

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