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

Не работает getline() - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ с++ для очень начинающих http://www.cyberforum.ru/cpp-beginners/thread934757.html
ребят, очень хочу писать на с++, нашла книгу, учусь, но для написания первой программы мне нужен ms dos. Знаю, что он идет как операционная система. В общем у меня 2 вопроса 1. Как нормально...
C++ Построение обработчика коллизий Добрый день. Пишу игру на подобии змейки (мод) на классах. Приходится часто переписывать как классы для объектов игры так и и функции их взаимодействия. И пока толку мало. Скажите как правильно... http://www.cyberforum.ru/cpp-beginners/thread934742.html
C++ Определить пользовательский тип – структура. Поля структуры определить из формулировки задания
Определить пользовательский тип – структура. Поля структуры определить из формулировки задания. Разработать алгоритм и по нему составить программу для обработки динамического массива, каждый элемент...
Разработать алгоритм и по нему составить два варианта (с указателями и без них) программы для обработки текста C++
Разработать алгоритм и по нему составить два варианта (с указателями и без них) программы для обработки текста. Дан текст. Определить, сколько в нем символов ‘*‘, ’;‘,‘:‘ .
C++ Разработать алгоритм и по нему составить два варианта программы для обработки двумерного массива http://www.cyberforum.ru/cpp-beginners/thread934738.html
Разработать алгоритм и по нему составить два варианта программы для обработки двумерного массива. Первый вариант программы – работа со статическим массивом, второй – с динамическим. Дана матрица...
C++ Разработать алгоритм и по нему составить программу Помогите пожалуйста. Найти закон по которому формируется указанная матрица. Разработать алгоритм и по нему составить программу для формирования квадратной матрицы порядка n. Первый вариант... подробнее

Показать сообщение отдельно
mikhail90
0 / 0 / 0
Регистрация: 21.03.2013
Сообщений: 76

Не работает getline() - C++

07.08.2013, 13:06. Просмотров 633. Ответов 8
Метки (Все метки)

У меня есть класс, в котором в функции printPaste считывается строка пользователем. При вызове этой функции после ввода переменной position компилятор игнорирует
C++
1
2
getline(cin, NewString); 
UserStr.insert (position, NewString) ;
и сразу начинает выводить строку.

Если это заменить оператором,
C++
1
cin >> NewString ;
то строка считывается, но без пробелов, а мне нужно с пробелами. Объясните в чем дело ?

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
class MyClassString
{
private:
    string NewString ; 
    int LengthString ;
public:
    void printRevers (string &UserStr)  // реверс
    {
        LengthString = UserStr.length() ;
        for (int i = 0; i < LengthString / 2 ; ++i)
            swap( UserStr[i], UserStr[LengthString-1-i] );
        cout << endl << "Строка после реверса: " << endl <<UserStr << endl ;
    }
    void printPaste (string &UserStr)  // вставка в произвольную позицию
    {
        int position ;
        cout << "Введите позицию, куда вы будете вставлять свою строку" << endl
            << "(отчет позиций введется с 0): " ;
        cin >> position ;
        cout << "Введите вставляемое: " ;
        getline(cin, NewString); // ЭТО НЕ РАБОТАЕТ
        UserStr.insert (position, NewString) ;
        cout << endl << UserStr << endl ;
    }
};
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru