Форум программистов, компьютерный форум, киберфорум
Наши страницы

getline vs посимвольный ввод - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сортировка с двоичным включением http://www.cyberforum.ru/cpp-beginners/thread982868.html
Продемонстрируйте в виде таблицы работу алгоритма сортировки с двоичным включением на массиве 15,4,10,8,6,9,16,1 по возрастанию. Помогите, как это будет выглядеть? Код программы не нужен, чисто...
C++ Дописать код о удаление строк и столбцов с матрицы Данная программа находит Мax элемент в данной матрицы и указывает строку и столбец его нахождения. Нужно дописать, чтобы получалась новая матрица путем удаления этой строки и столбца Max элемента.... http://www.cyberforum.ru/cpp-beginners/thread982864.html
C++ Как объединить два массива в один?
Вот к примеру есть два массива: int A={1,2,3,4}; int B={5,6,7,8}; Как создать третий массив С , в котором будут содержаться элементы массива А и В, но так , чтобы массив С был такой: int...
Доступ к области памяти из другого класса C++
Есть класс в котором создаётся область в памяти, как получить из другого класса доступ к этой облпсти в возможностью перезаписи? В примере много чего вырезано, но более ли мение ясно. class...
C++ Удаление строк из двумерного массива http://www.cyberforum.ru/cpp-beginners/thread982843.html
Вот мой код, но он удаляет только 1 строку, мне надо переделать его так чтобы я вводил числа A и B и удалялись строки от А до Б но размер массива не менялся и в конце дописывались нулевые строки ...
C++ Найти сумму ряда(сделать последний шаг) здраствуйте я учусь не на програмиста но нам задали 3 лабораторные работы по С++ и сказали разобратся самим и решить, на этом изучение закончилось (но лабы я еще не сделал) в третей лабе нужно... подробнее

Показать сообщение отдельно
alsav22
5436 / 4831 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
21.10.2013, 12:00
После cin >> в потоке остаётся '\n' (попадает туда при нажатии Enter). Если дальше getline(), то для неё это будет первый символ. Для getline() - это пустая строка. Она его извлечёт из потока, в строку чтения поместит '\0', и код пойдёт, без остановки на ввод, дальше. В коде, ввод через cin >> перед getline(), происходит в двух местах: первый раз перед циклом (cin >> n), второй раз - в каждой итерации цикла (cin >> s1). Тут и нужно извлечь '\n' из потока. Извлекается '\n' так:
C++
1
2
cin >> n;
cin.get(); // извлекает один символ из потока чтения, в данном коде '\n'
Тоже самое можно записать одной строкой:
C++
1
(cin >> n).get();
Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
9
10
11
12
 (cin >> n).get();
    for (int i = 0; i < n; i++)
    {
        string s, s1;
        getline (cin, s);
       (cin >> s1).get();
    //  cout << s << endl << s1 << endl;
        if (s1 == "Slytherin") Slytherin.push_back(s);
        else if (s1 =="Hufflepuff") Hufflepuff.push_back(s);
        else if (s1 =="Gryffindor") Gryffindor.push_back(s);
        else if (s1 =="Ravenclaw") Ravenclaw.push_back(s);
    }
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru