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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Цикл http://www.cyberforum.ru/cpp-beginners/thread73465.html
С клавиатуры вводится n целых чисел а1,а2,.....,аn. В процессе ввода чисел выводите на экран следующие произведения: а1*а2,а2*а3,....,а н-1*ан. Для ввода и вывода использовать разные цвета. С...
C++ логарифмы подскажите как использовать функцию натуральных логарифмов на С++, я програмирую на деве http://www.cyberforum.ru/cpp-beginners/thread73462.html
Несколько вопросов про массив C++
Добрый день, было задание написать программку, которая бы подсчитывала количество элементов в массиве, меньших значений C, которое вводится с клавиатуры. Вот то что получилось, но при компиляции...
C++ Физика
Помогите пожалуйста доделать задачу по физике, точнее её доделать. Вот её код:#include<iostream> #include<conio.h> #include<stdio.h> #include<math.h> using namespace std; int main () { ...
C++ Не могу составить цикл http://www.cyberforum.ru/cpp-beginners/thread73451.html
Есть массив символов например char c нужно вывести на экран с_c_c_c_c_c_c... итд тоесть все комбинации символов
C++ Вычислить Простите за картинку вычислить подробнее

Показать сообщение отдельно
Darky
Быдлокодер
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1

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

12.12.2009, 11:18. Просмотров 7640. Ответов 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 то буква появляется.
Где ошибка?
Могу выложить весь код, но он довольно объемен
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru