Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.74/34: Рейтинг темы: голосов - 34, средняя оценка - 4.74
6 / 6 / 3
Регистрация: 03.09.2013
Сообщений: 81

Как осуществить неограниченный ввод в консоль?

06.09.2015, 20:36. Показов 7532. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Необходимо вводить в консоль случайное количество чисел разделенные пробелом, например: 2 10 11 9
Как это осуществить? Обычный cin не подходит, ведь он берет по 1 значению
C++
1
std::cin >> a; // при вводе "2 6" запомнит только "2"
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.09.2015, 20:36
Ответы с готовыми решениями:

Можно ли как-то осуществить вывод кириллицы в консоль, не используя Lucida Console
Собственно сабж в заголовке. Есть способ оставить стандартный Consolas?

Формат ввода: как осуществить построчный ввод?
Здравствуйте я решаю олимпиадные задачи, но я не понял как вводить 2 строку? Через пробел или ENTER? Если через пробелы то через strtok?

Как осуществить ввод только чисел и знаков операций?
мне нужно чтобы при вводе я не мог ничего вводить кроме чисел и математических знаков(+,/,*,-)

10
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
06.09.2015, 20:37
Используй его в цикле.
0
6 / 6 / 3
Регистрация: 03.09.2013
Сообщений: 81
06.09.2015, 20:44  [ТС]
Вы видимо предлагаете сделать изначально N-ый массив и в него
C++
1
2
for(int i=0; i<N; i++)
        std::cin >> array[i];
Но это опять же, фиксированное количество. Если N изначально задано 5, то я не смогу выполнить программу задав только 4 переменные. В этом и есть проблема
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
06.09.2015, 21:00
Лучший ответ Сообщение было отмечено StriBog45 как решение

Решение

C++
1
2
3
4
5
6
7
std::vector<int>mas;
while(cin.peek()!=10&&cin.peek()!=13)
{
    int temp;
    cin>>temp;
    mas.push_back(temp);
}
1
807 / 534 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
06.09.2015, 21:18
StriBog45, можно еще так (идею с вектором взял у Renji)
C++
1
2
vector<int>mas;
for (int temp; cin >> temp; mas.push_back(temp));
1
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
07.09.2015, 01:01
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <vector>
#include <iterator>
 
 
template < typename T >
std::istream & operator>> ( std::istream & stream , std::vector<T> & vec )
{
    vec.clear() ;
    vec.insert ( vec.end() , std::istream_iterator<T>(stream) , std::istream_iterator<T>() ) ;
    return stream ;
}
 
int main()
{
    std::vector < int > vec ;
    std::cin >> vec ;
}

C++
1
2
3
4
5
6
7
8
9
#include <iostream>
#include <vector>
#include <iterator>
 
 
int main()
{
    std::vector < int > vec1 ( std::istream_iterator<int>(std::cin) , (std::istream_iterator<int>())  ) ;
}
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
07.09.2015, 05:12
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include <iostream>
#include <iterator>
#include <sstream>
#include <string>
#include <vector>
/////////////////////////////////////////////////////////////////////////////////////////
typedef std::string                 T_str;
typedef std::vector     < int   >   T_int_numbers;
/////////////////////////////////////////////////////////////////////////////////////////
template< typename  T >
bool    successfully_input_vect( std::vector<T>  &  v )
{
    T_str   s;
    getline( std::cin, s );
    bool    bool_res    =   !s.empty();
 
    if( bool_res )
    {
        std::istringstream  ssin(s);
 
        v.assign
            (
                std::istream_iterator<T>    ( ssin ),
                std::istream_iterator<T>    ()
            );
 
        bool_res    =   !v.empty();
    }//if
 
    return  bool_res;
}
/////////////////////////////////////////////////////////////////////////////////////////
template< typename  T >
void    print_vect( std::vector<T>  &  v )
{
    std::copy
        (
            v.begin                     (),
            v.end                       (),
            std::ostream_iterator<T>    ( std::cout, " " )
        );
 
    std::cout   <<  std::endl;
}
/////////////////////////////////////////////////////////////////////////////////////////
int     main()
{
    T_int_numbers   int_numbers;
 
    while   (
                successfully_input_vect( int_numbers )
            )
    {
        print_vect( int_numbers );
        std::cout   <<  std::endl;
    }//for
}
0
 Аватар для niov
0 / 0 / 0
Регистрация: 31.08.2015
Сообщений: 3
07.09.2015, 06:20
C++
1
2
3
4
5
6
#include <iostream>
int main()
{
     int value;
     while (std::cin >> value)
     // тело
Добавлено через 10 минут
Lippman S., Lajoie J., Moo B. / Липпман С., Лажойе Ж., Му Б. - C++ Primer / Язык программирования С++. Вводный курс (4-е издание) 2005/2007. На стр.41 подробно всё расписано: "Ввод неизвестного количества данных".
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
07.09.2015, 12:48
Цитата Сообщение от niov Посмотреть сообщение
while (std::cin >> value)
С подробной инструкцией как этот цикл потом остановить.
0
807 / 534 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
07.09.2015, 13:13
Renji, ввести какое нить число сверх диапозона, а лучше слово (букву) напр. "end"
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
07.09.2015, 13:27
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
Renji, ввести какое нить число сверх диапозона, а лучше слово (букву) напр. "end"
После чего еще и чистить поток от остатков этого слова. Тогда как в моем варианте (четвертый пост), ввод завершится просто по enter.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.09.2015, 13:27
Помогаю со студенческими работами здесь

как осуществить ввод только нечетных целых чисел?
вот в этой программе необходимо ввести n, которое нечетное целое # include &quot;iostream&quot; # include &lt;math.h&gt; # include...

Как осуществить ввод букв и цифр вручную в окне написанной программы
Здраствуйте уважаемые коллеги) Редактировала программу под себя, вернее скрипт Все сделала как надо кроме - ввода вручную букв и цифр...

Как осуществить случайный ввод элементов матрицы, чтоб не вводить с клавиатуры
Как осуществить случайный ввод элементов матрицы, чтоб не вводить с клавиатуры. Сначала вводится колво строк и столбцов, затем сама матрица

Как осуществить такую программу где ввод и вывод будет на одной строке?
Допустим у меня есть такой код int main() { int a,b; scanf(&quot;%i&quot;,&amp;a); printf(&quot;+&quot;); scanf(&quot;%i&quot;, &amp;b); ...

Как осуществить ввод числа, не зная какой тип числа будет введён?
И не объявляя вводимую переменную как double...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита табличной части. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru