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

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

Войти
Регистрация
Восстановить пароль
 
Nikoys
26 / 26 / 6
Регистрация: 29.12.2010
Сообщений: 90
#1

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

11.06.2013, 20:45. Просмотров 251. Ответов 1
Метки нет (Все метки)

Всем доброго вечера!
Как всегда, избитая тема про потоки 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(), не помогло)? Как решить проблему без считывания числа как строки и без перевода в числа (ну, или так, если не выходит иначе)?

Заранее спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.06.2013, 20:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Лишнее считывание строк (C++):

Считывание из файла в char - при выводе выводится лишнее - C++
Считываю из файла в строку типа char, если у меня в строке меньше 16 символов, то при выводе выводится какой-то мусор, наверное связано с...

Считывание строк с клавиатуры - C++
Столкнулся вот с такой проблемой при использовании функции gets_s() выводятся кракозябы. Setlocale не помогает. Как исправить ошибку и где...

Считывание строк из файла - C++
Помогите, пожалуйста, нужно на завтра две прграммы написать, но не получается(( 1) считать из файла строки-палиндромы (это строки,...

Считывание строк из файла - C++
Во общем есть текстовый файл, из которого надо взять строку и просто ее напечатать #define _CRT_SECURE_NO_WARNINGS #include...

Считывание строк из файла - C++
Здравствуйте, подскажите, пожалуйста, как организовать чтение строк из файла при помощи ifstream\ofstream таким образом, чтобы считывалось...

Считывание строк в файл - C++
Здравствуйте,очень нужна помощь.Есть данный код,не могу понять как его переделать из посимвольного считывания в файл в строковое...

1
Olivеr
412 / 408 / 13
Регистрация: 06.10.2011
Сообщений: 832
11.06.2013, 21:08 #2
после
C++
1
 cout<<"Fill the library:\n";
дописать
C++
1
cin.sync();
или
C++
1
cin.get();
Добавлено через 2 минуты
Просто там один символ не считался. Можно синхронизацией, а можно его считать.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.06.2013, 21:08
Привет! Вот еще темы с ответами:

Считывание строк с клавиатуры - C++
Доброго времени. вот небольшой код: (см. ниже). Почему в консоли пишет абрукадабру? Как это исправить? Спасибо

считывание строк и чисел. - C++
Доброго времени суток. Столкнулся с проблемой считывания чисел и строк. Используются только &lt;string&gt; и &lt;iostream&gt;. Необходимо вначале...

Считывание и сравнение строк - C++
Добрый день! Помогите, пожалуйста, написать программу, позволяющую считывать данные из файла построчно. Если строка встречается несколько...

Считывание строк из файла - C++
При считывании из файла читаются всего 3 строки. void rab::xinputfile() // vvod iz file { ifstream fin; // delete x;...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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