С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
5 / 5 / 1
Регистрация: 06.10.2020
Сообщений: 176
1

Ввод set до конца строки

12.11.2020, 13:23. Показов 1486. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно написать функцию input, которая добавляет элементы в set, пока не конец строки. Например,
input:
3 4 5
4 5 6 7 9
Тогда в set1 записываются элементы первой строки (3, 4, 5), а в set2 - второй (4, 5, 6, 7, 9).

Написал функцию для ввода одного сета, а вот как реализовать для нескольких не знаю.
C++
1
2
3
4
5
6
7
8
9
void input(std::set<int>& set) {
    while (true) {
    int num;
    std::cin >> num;
    if (std::cin.peek() == "\n") 
        return;
    set.insert(num);
    }
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.11.2020, 13:23
Ответы с готовыми решениями:

Ввод чисел до конца строки
как такое сделать?

Ввод и вывод в программе символа конца строки (доллара), tasm
Помогите пожалуйста отредактировать программу, чтобы она корректно работала при вводе и выводе...

Признаком конца ввода строки является ввод трех подряд символов, не являющихся цифрами
Признаком конца ввода строки является ввод трех подряд символов, не являющихся цифрами. как это...

Для чего нужны set.keys(), set.values(), set.entries() ?
Для чего нужны set.keys(), set.values(), set.entries() ? Не могу понять документацию. Приведите...

2
158 / 148 / 25
Регистрация: 23.01.2011
Сообщений: 319
12.11.2020, 13:38 2
Лучший ответ Сообщение было отмечено mangomang как решение

Решение

В вашем коде есть ошибка. Нужно поменять местами
C++
1
2
if (std::cin.peek() == "\n") 
    return;
и
C++
1
set.insert(num);
потому что в std::set не будет вставлен последний элемент ввода.

Для ввода нескольких std::set можете вызывать вашу функцию input нужное количество раз.
1
5 / 5 / 1
Регистрация: 06.10.2020
Сообщений: 176
12.11.2020, 21:24  [ТС] 3
Цитата Сообщение от Celly Посмотреть сообщение
В вашем коде есть ошибка. Нужно поменять местами
C++
1
2
if (std::cin.peek() == "\n") 
    return;
и
C++
1
set.insert(num);
потому что в std::set не будет вставлен последний элемент ввода.

Для ввода нескольких std::set можете вызывать вашу функцию input нужное количество раз.
Спасибо
0
12.11.2020, 21:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.11.2020, 21:24
Помогаю со студенческими работами здесь

Ввести строки и через n символов первой строки вставить вторую строку, и так до конца строки
Помогите исправить баг задача состоит в следующем :ввести строку и простроку тоесть две строки и...

Ввод данных в контейнер set
Здравствуйте! В первое множество элементы вводятся нормально, но вот во второе множество кладется...

Ввод до конца потока
Как можно осуществить ввод до конца потока? var a: longint; begin while not seekeof do ...

Программа со строками не реагирует на ввод конца файла
Подскажите пожалуйста, в чем дело. Ввожу слова, все остальное должно происходить после ввода конца...

Ввод числа,а компьютер выводит его с конца
Собственно дело обстоит так: мы вводим число(допустим 82) а нам должно будет вывести: 28 Вы уж...

Ввод даты начала и конца в отчете из разных запросов
Доброго времени суток. Подскажите пожалуйста, есть отчет в данном отчете два запроса с...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru