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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
Alexfarik
0 / 0 / 0
Регистрация: 18.02.2013
Сообщений: 6
10.04.2014, 19:56     Продемонстрировать различие между вводом с помощью cin.Get и cin.Getline с тремя параметрами #1
Нужна помощь. Задача продемонстрировать различие между вводом с помощью 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);
    
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.04.2014, 19:56     Продемонстрировать различие между вводом с помощью cin.Get и cin.Getline с тремя параметрами
Посмотрите здесь:

C++ Какая разница между cin и getline?
cin.getline() C++
C++ cin.getline
C++ cin.getline
С помощью cin.getline считать все строки файла в контейнер (вектор или очередь) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
11.04.2014, 05:17     Продемонстрировать различие между вводом с помощью cin.Get и cin.Getline с тремя параметрами #2
Цитата Сообщение от Alexfarik Посмотреть сообщение
как из потока достать вторую часть после использования getline
О какой второй части речь?
IrineK
Заблокирован
11.04.2014, 05:27     Продемонстрировать различие между вводом с помощью cin.Get и cin.Getline с тремя параметрами #3
Цитата Сообщение от 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; в соответствующем цикле.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
11.04.2014, 05:50     Продемонстрировать различие между вводом с помощью cin.Get и cin.Getline с тремя параметрами #4
Цитата Сообщение от 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 с тремя параметрами  
IrineK
Заблокирован
11.04.2014, 05:53     Продемонстрировать различие между вводом с помощью cin.Get и cin.Getline с тремя параметрами #5
Цитата Сообщение от alsav22 Посмотреть сообщение
убрать из потока то, что осталось в потоке после разделителя?
Ага.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
11.04.2014, 05:57     Продемонстрировать различие между вводом с помощью cin.Get и cin.Getline с тремя параметрами #6
Если убрать:
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);
IrineK
Заблокирован
11.04.2014, 06:15     Продемонстрировать различие между вводом с помощью cin.Get и cin.Getline с тремя параметрами #7
Понятно - все остается в потоке.
Спасибо)
Alexfarik
0 / 0 / 0
Регистрация: 18.02.2013
Сообщений: 6
11.04.2014, 17:00  [ТС]     Продемонстрировать различие между вводом с помощью cin.Get и cin.Getline с тремя параметрами #8
Достать 2ую часть из потока, чтобы не было так, как на скрине, возможно я не уловил принцип.
Миниатюры
Продемонстрировать различие между вводом с помощью cin.Get и cin.Getline с тремя параметрами  
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
11.04.2014, 21:53     Продемонстрировать различие между вводом с помощью cin.Get и cin.Getline с тремя параметрами #9
Цитата Сообщение от Alexfarik Посмотреть сообщение
Достать 2ую часть из потока
Тут правильнее говорить: очистить поток после getline(). Достать - подразумевает дальнейшее использование того, что достаётся. Если очистить поток, то код в 6 посте.

Добавлено через 6 минут
....
Alexfarik
0 / 0 / 0
Регистрация: 18.02.2013
Сообщений: 6
11.04.2014, 22:00  [ТС]     Продемонстрировать различие между вводом с помощью cin.Get и cin.Getline с тремя параметрами #10
Вот, в дальнейшем использовании (хотя бы нормальном выводе) я и заинтересован
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
11.04.2014, 22:25     Продемонстрировать различие между вводом с помощью cin.Get и cin.Getline с тремя параметрами #11
Цитата Сообщение от Alexfarik Посмотреть сообщение
в дальнейшем использовании (хотя бы нормальном выводе)
Нормальном выводе чего? Того, что осталось в потоке, после чтения из него getline() до разделителя?
Alexfarik
0 / 0 / 0
Регистрация: 18.02.2013
Сообщений: 6
12.04.2014, 20:58  [ТС]     Продемонстрировать различие между вводом с помощью cin.Get и cin.Getline с тремя параметрами #12
Да, того, что осталось после ограничителя
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
12.04.2014, 21:43     Продемонстрировать различие между вводом с помощью cin.Get и cin.Getline с тремя параметрами #13
Цитата Сообщение от Alexfarik Посмотреть сообщение
Да, того, что осталось после ограничителя
Всё уже написано, и показано. И так, и этак.
Alexfarik
0 / 0 / 0
Регистрация: 18.02.2013
Сообщений: 6
13.04.2014, 01:12  [ТС]     Продемонстрировать различие между вводом с помощью cin.Get и cin.Getline с тремя параметрами #14
Я понимаю, как это жутко выглядит, но можете попробовать с буквенными данными, то есть как у меня на скрине?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.04.2014, 01:25     Продемонстрировать различие между вводом с помощью cin.Get и cin.Getline с тремя параметрами
Еще ссылки по теме:

getline(cin, str) и cin>> C++
C++ Cin вместо cin.getline
Cin.get() и cin.getline() C++

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

Или воспользуйтесь поиском по форуму:
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
13.04.2014, 01:25     Продемонстрировать различие между вводом с помощью cin.Get и cin.Getline с тремя параметрами #15
Цитата Сообщение от Alexfarik Посмотреть сообщение
можете попробовать с буквенными данными, то есть как у меня на скрине?
Могу.
Миниатюры
Продемонстрировать различие между вводом с помощью cin.Get и cin.Getline с тремя параметрами  
Yandex
Объявления
13.04.2014, 01:25     Продемонстрировать различие между вводом с помощью cin.Get и cin.Getline с тремя параметрами
Ответ Создать тему
Опции темы

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