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

Продемонстрировать различие между вводом с помощью cin.Get и cin.Getline с тремя параметрами

10.04.2014, 19:56. Показов 3862. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужна помощь. Задача продемонстрировать различие между вводом с помощью cin.get и cin.getline с тремя параметрами, как из потока достать вторую часть после использования getline, вот кусок того, что я написал. Ничего адекватно написанного не нашел.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void part(){
    char str[100], str2[100], ogr;
    cout << "Введите ограничитель" << endl;
    cin >> ogr;
    cout << "Использование getline:" << endl;
    cout << "Вводите строку" << endl;
    cin.getline(str, 100, ogr);
    cout << "Строка после getline: " << str << endl;
    cout << str << endl;
    system("pause");
    system("cls");
    cout << "Использование get:" << endl;
    cout << "Вводите строку" << endl;
    cin.get(str2, 100, ogr);
    cout << "Строка после get: " << str2 << endl;
    system("pause");
    system("cls");
    cin.clear();
    fflush(stdin);
    
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.04.2014, 19:56
Ответы с готовыми решениями:

Разница между cin >> x и getline(cin, x)
Собственно код, на который я опираюсь: #include &lt;iostream&gt; using namespace std; int main() { string key; string name...

Защита от дурака при вводе текста с помощью: cin.get cin.clear cin.sync
Доброго времени суток. На С++ учусь с недавних пор. Имеется стандартная &quot;защита от дурака&quot; на ввод. Не пойму предназначение cin.get()...

C++ проблема с вводом, getline(cin, *p) не работает
В общем есть вот такой вот код, я хочу, что бы ввод названия компании шел после ввода диаметра, но программа просто пропускает getline,...

14
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
11.04.2014, 05:17
Цитата Сообщение от Alexfarik Посмотреть сообщение
как из потока достать вторую часть после использования getline
О какой второй части речь?
0
 Аватар для IrineK
2023 / 1641 / 425
Регистрация: 23.02.2011
Сообщений: 6,002
Записей в блоге: 25
11.04.2014, 05:27
Цитата Сообщение от Alexfarik Посмотреть сообщение
как из потока достать вторую часть после использования getline
С ограничителем?
Никак.
Читаем первоисточник:
delim
Explicit delimiting character: The operation of extracting successive characters stops as soon as the next character to extract compares equal to this.
Т.е., в исходнике прописан break; в соответствующем цикле.
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
11.04.2014, 05:50
Цитата Сообщение от Alexfarik Посмотреть сообщение
как из потока достать вторую часть после использования getline
Достать - в смысле, прочитать в другую строку?
Если так сделать и ввести два ограничителя, то следующий cin.get() и прочитает:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
char str[100], str2[100], ogr;
    cout << "Введите ограничитель" << endl;
    cin >> ogr;
    cout << "Использование getline:" << endl;
    cout << "Вводите строку" << endl;
    cin.getline(str, 100, ogr);
    cout << "Строка после getline: " << str << endl;
    //cout << str << endl;
    system("pause");
    //system("cls");
    cout << "Использование get:" << endl;
    cout << "Вводите строку" << endl;
    cin.get(str2, 100, ogr);
    cout << "Строка после get: " << str2 << endl;
    system("pause");
    system("cls");
    cin.clear();
    fflush(stdin);
Или достать - в смысле, просто убрать из потока то, что осталось в потоке после разделителя?
Миниатюры
Продемонстрировать различие между вводом с помощью cin.Get и cin.Getline с тремя параметрами  
1
 Аватар для IrineK
2023 / 1641 / 425
Регистрация: 23.02.2011
Сообщений: 6,002
Записей в блоге: 25
11.04.2014, 05:53
Цитата Сообщение от alsav22 Посмотреть сообщение
убрать из потока то, что осталось в потоке после разделителя?
Ага.
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
11.04.2014, 05:57
Если убрать:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    char str[100], str2[100], ogr;
    cout << "Введите ограничитель" << endl;
    cin >> ogr;
    cout << "Использование getline:" << endl;
    cout << "Вводите строку" << endl;
    cin.getline(str, 100, ogr);
    while (cin.get() != '\n');
    cout << "Строка после getline: " << str << endl;
    //cout << str << endl;
    system("pause");
    //system("cls");
    cout << "Использование get:" << endl;
    cout << "Вводите строку" << endl;
    cin.get(str2, 100, ogr);
    cout << "Строка после get: " << str2 << endl;
    system("pause");
    system("cls");
    cin.clear();
    fflush(stdin);
1
 Аватар для IrineK
2023 / 1641 / 425
Регистрация: 23.02.2011
Сообщений: 6,002
Записей в блоге: 25
11.04.2014, 06:15
Понятно - все остается в потоке.
Спасибо)
0
0 / 0 / 0
Регистрация: 18.02.2013
Сообщений: 6
11.04.2014, 17:00  [ТС]
Достать 2ую часть из потока, чтобы не было так, как на скрине, возможно я не уловил принцип.
Миниатюры
Продемонстрировать различие между вводом с помощью cin.Get и cin.Getline с тремя параметрами  
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
11.04.2014, 21:53
Цитата Сообщение от Alexfarik Посмотреть сообщение
Достать 2ую часть из потока
Тут правильнее говорить: очистить поток после getline(). Достать - подразумевает дальнейшее использование того, что достаётся. Если очистить поток, то код в 6 посте.

Добавлено через 6 минут
....
0
0 / 0 / 0
Регистрация: 18.02.2013
Сообщений: 6
11.04.2014, 22:00  [ТС]
Вот, в дальнейшем использовании (хотя бы нормальном выводе) я и заинтересован
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
11.04.2014, 22:25
Цитата Сообщение от Alexfarik Посмотреть сообщение
в дальнейшем использовании (хотя бы нормальном выводе)
Нормальном выводе чего? Того, что осталось в потоке, после чтения из него getline() до разделителя?
0
0 / 0 / 0
Регистрация: 18.02.2013
Сообщений: 6
12.04.2014, 20:58  [ТС]
Да, того, что осталось после ограничителя
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
12.04.2014, 21:43
Цитата Сообщение от Alexfarik Посмотреть сообщение
Да, того, что осталось после ограничителя
Всё уже написано, и показано. И так, и этак.
0
0 / 0 / 0
Регистрация: 18.02.2013
Сообщений: 6
13.04.2014, 01:12  [ТС]
Я понимаю, как это жутко выглядит, но можете попробовать с буквенными данными, то есть как у меня на скрине?
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
13.04.2014, 01:25
Цитата Сообщение от Alexfarik Посмотреть сообщение
можете попробовать с буквенными данными, то есть как у меня на скрине?
Могу.
Миниатюры
Продемонстрировать различие между вводом с помощью cin.Get и cin.Getline с тремя параметрами  
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.04.2014, 01:25
Помогаю со студенческими работами здесь

Метод getline(cin, m) не срабатывает без cin.ignore() / Ревью кода
Почему в моем случае getline(cin, m) не срабатывает без cin.ignore() ? Если по коду есть какие-нибудь замечания, то просьба написать что не...

Объясните работу методов cin.getline и cin.ignore
Фрагмент программы ниже. Что делают cin.getline и cin.ignore (12-13 строки) void WorkWithBooks(int Books) { if (Books &gt; 0) ...

Отличие функции cin.get и cin.getline
Добрый день! Изучаю функции get и getline, сказано, что они отличаются тем, что функция get считывает символ разрыва строк и оставляет...

Как работает cin.peek, cin,get, cin.ignore, cin.clear?
Здравствуйте, товарищи и не товарищи!:) Я только начал изучать C++, а уже использую вещи, которые мне не понятны, и прошу объяснить, как...

cin.getline и cin.ignore
Есть кусок кода в котором не могу разобраться. Если cin.ignore() есть, то теряется первый вводимый символ начиная со второго входа в for....


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru