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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
Pepsy
47 / 32 / 4
Регистрация: 05.01.2013
Сообщений: 307
22.07.2013, 23:13     Считывание чисел до нажатия Enter #1
Нужна функция, благодаря которой цикл будет выполнятся до нажатия Enter.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
5282 / 4801 / 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
Модератор
Эксперт С++
 Аватар для Croessmah
11823 / 6802 / 769
Регистрация: 27.09.2012
Сообщений: 16,870
Записей в блоге: 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
Ответ Создать тему
Опции темы

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