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

Лишнее считывание строк - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ упорядочить по четности http://www.cyberforum.ru/cpp-beginners/thread898862.html
Пусть задана матрица. Рассматривая ее как вектор строк, упорядочите ее по количеству нечетных элементов в каждой строке #pragma argsused #include <iostream.h> #include <cmath> #include <conio.h>
C++ Как записать в файл #include <iostream> // Подключаем библиотеку ввода-вывода #include <string> #include <fstream> #include <iomanip> using namespace std;// Объявление стандартных имен void rotateMatrix(double **matrix, int &rows, int &cols, int rotate_count) // Создаем функцию { double temp; int min; for (int r = 0; r < rotate_count; r++) http://www.cyberforum.ru/cpp-beginners/thread898852.html
makefile C++
Здравствуйте. Скачал библиотеку, там исходники и makefile. Как ее подключить? Заранее спасибо. Добавлено через 2 часа 4 минуты ап. помогите
C++ Перевести из Basic в С++
Помогите перевести в С++ Sub zxc7() Dim i&, j&, m&, n&, a&() Randomize n = 9 m = 7 ReDim a(1 To n, 1 To m) For i = 1 To n For j = 1 To m a(i, j) = Int(Rnd * 112 - 112)
C++ Наследование typedef'a http://www.cyberforum.ru/cpp-beginners/thread898828.html
Итак, в некотором классе typedef'ом определен тип: template<typename T> class Shape { public: typedef T sclar; }; Если я его наследую в другом классе, например:
C++ как сделать через рекурсивную функцию ? #include <iostream> using std::cout; using std::endl; using std::cin; const int n=100; int main() { int i=0,arr; setlocale (LC_ALL,"rus"); cout << "Введите последовательность чисел:"; подробнее

Показать сообщение отдельно
Nikoys
26 / 26 / 6
Регистрация: 29.12.2010
Сообщений: 90
11.06.2013, 20:45     Лишнее считывание строк
Всем доброго вечера!
Как всегда, избитая тема про потоки cin/cout.
Предположим, в следующем формате пишется часть кода:
C++
1
2
3
4
5
6
7
8
9
10
11
12
    cout << "Enter the number of books:\n";
    cin >> k; // int k
    cout<<"Fill the library:\n";
    for(int i=0; i<k; i++)
    {
        string str1, str2;
        cout << "Enter the author:\t";
        getline(cin,str1);
        cout << "Enter the name of book:\t";
        getline(cin,str2);        
        element.insert(pair<string, string> (str1, str2)); // map<string,string> element
    }
getline был взят, чтобы не игнорировались пробелы cin'ом.

С другой стороны, в начале работы игнорируется первый getline.
То есть, после ввода числа книг вывод происходит в следующем формате:
"Enter the author: Enter the name of book:"
Далее все работает отлично, во всяком случае, строки записываются нормально.

Проверял, что выдает первой строкой после первого пробега. На выводе это пробел.
Как решить проблему? Связано ли это с предварительным считыванием числа и остатком пустого символа в потоке (хотя я пробовал делать cin.clear(), не помогло)? Как решить проблему без считывания числа как строки и без перевода в числа (ну, или так, если не выходит иначе)?

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