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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 59, средняя оценка - 4.63
Darky
Быдлокодер
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
#1

Друзья getline и cin.ignore - C++

12.12.2009, 11:18. Просмотров 7547. Ответов 3
Метки нет (Все метки)

Постараюсь как можно более точно обрисовать проблему.
Имеется
C++
1
2
3
string * v1 = new string[i];
string * v2 = new string[i];
string * v3 = new string[i];
Такой цикл
C++
1
2
3
4
5
6
7
8
9
10
        for(j=0;j<i;j++)                          //цикл1
        {
                cout<<"Вопрос "<<j+1<<": "<<endl;             //вопрос
                cin.ignore();  // игнорирует символ перевода строки после ввода данных
                getline(cin, v1[j],'\n');               // получает строку до символа первода строки
 
                cout<<"Ответ "<<j+1<<":\n";                 //ответ
                cin.ignore();  // игнорирует символ перевода строки после ввода данных
                getline(cin, v2[j],'\n');               // получает строку до символа первода строки
        }
И такой цикл, выводит случайный (с этим проблем нет) вопрос, и пользователь должен ввести такой же по номеру ответ.

C++
1
2
3
4
5
6
7
8
9
       for(j=0;j<KOL;j++)                           //цикл2
        {      <.....>
                cout<<">>Вопрос номер "<<k+1<<": ";     //вопрос
                cout<<v1[k]<< endl;
            //    getline(cin, v2[k],'\n');
                cout<<">>Ответ: ";                //ответ
                cin.ignore();
                getline(cin, v3[k],'\n');
                <.....>
Проблема в том, что только при первой итерации второго цикла ответ нужно вводить без первого символа, заменяя его пробелом, иначе ответ засчитывается как неправильный.
И еще - если во втором цикле сделать j=0;j<KOL то первая буква вопроса съедается. Если j=1;j<=KOL то буква появляется.
Где ошибка?
Могу выложить весь код, но он довольно объемен
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2009, 11:18     Друзья getline и cin.ignore
Посмотрите здесь:

cin.ignore - C++
Как работает эта функция? cin.ignore (1, '#');

Избавиться от cin.ignore() - C++
Приветствую всех! Написал простенькую программку для работы с классами. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using std::cout;...

Что делает cin.ignore(); - C++
Поясните мне, какое действие выполняет функция: cin.ignore(); Лучше на примере каком нибудь!(с комментариями) Может быть это что-то...

Что делает метод cin.ignore? - C++
cin.ignore(0,'\n'); Что она делает?

Исправить код, вызывающий cin.ignore(numeric_limits<streamsize>::max()) - C++
Возможно многие знают что если использовать библиотеку windows.h, и функцию cin.ignore(numeric_limits&lt;streamsize&gt;::max(), '\n'); выдаётся...

Как работает cin.ignore(), именно в том случае, когда он написан без параметров? - C++
Объясните, пожалуйста, как работает cin.ignore(), именно в том случае, когда написан без параметров заранее спасибо!

Setlocal и cin.getline - C++
Привет Всем! У меня такая задачка. В начале программы setlocale(LC_ALL,&quot;rus&quot;) чтоб консоль русские буквы понимала, но по ходу программы мне...

cin.getline() не выполняется - C++
В коде ниже не выполняется cin.getline(), просто пропускает и начинает выполнять следующую строку (0.png то что получается). form z; //...

cin.getline скушал - C++
Вот ставлю чтоб ввёл 5 строк а даёт только 4, съедает 1 строку самую первую как это починить? char **s = new char* ; for(int i = 0; i...

Проблема с cin.getline(); - C++
Есть вопрос по поводу использования cin.getline() после cin: cin&gt;&gt; n; char c; cin.getline(c, buf); Почему можно ввести...

Пропускается cin.getline - C++
Здравствуйте. Функция поиска void search() { char str; int arr_1, arr_2,col_rezult = 0; int on_name = 0; int on_autor =...

Использование оператора cin.getline - C++
Извините за глупый вопрос, но я никак не могу понять, как мне сохранить символы сразу в три разных строки что бы не вводить один и тот же...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
12.12.2009, 11:22     Друзья getline и cin.ignore #2
Darky, c самого начала прям
C++
1
string *v1 = new string[i]; - ерунда.
делай так
C++
1
2
3
string v1;
       getline(cin,v1);
       for (size_t i = 0 ; i < v1.length() ; i++) ...
Darky
Быдлокодер
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
12.12.2009, 11:30  [ТС]     Друзья getline и cin.ignore #3
Проблему решил, во всем разобрался.
Spaum145
2 / 2 / 0
Регистрация: 23.08.2009
Сообщений: 21
14.06.2012, 21:05     Друзья getline и cin.ignore #4
Цитата Сообщение от Darky Посмотреть сообщение
Проблему решил, во всем разобрался.
Проблема была в том, что описал Андрейка? Жаль не отписались, как была решена проблема, сейчас у самого возникла с cin.getline...
Yandex
Объявления
14.06.2012, 21:05     Друзья getline и cin.ignore
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru