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

getline - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.81
two steps
6 / 6 / 3
Регистрация: 13.06.2011
Сообщений: 27
07.10.2011, 23:32     getline #1
Я считываю число из входного потока, но дальше из входного потока уже не могу считать строку. Его надо очищать что ли?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdafx.h>
#include <iostream>
#include <locale.h>
#include <string>
 
using namespace std;
 
int main()
{
    int n;
    string str;
    cin>>n;             //Вводим для примера число 5
    getline(cin, str);    
    cout<<n<<str<<endl; //И сразу это число 5 и выводится, минуя оператор getline
    system("pause");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2011, 23:32     getline
Посмотрите здесь:

getline C++
getline C++
Getline C++
getline(cin, ); C++
C++ Перегрузка getline
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xdozorx
15 / 16 / 1
Регистрация: 13.12.2009
Сообщений: 138
Записей в блоге: 1
07.10.2011, 23:44     getline #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdafx.h>
#include <iostream>
#include <locale.h>
#include <string>
 
using namespace std;
 
int main()
{
        int n;
        string str;
        cin>>n;             //Вводим для примера число 5
        cin>>str;   
        cout<<n<<str<<endl; //И сразу это число 5 и выводится, минуя оператор getline
        system("pause");
        return 0;
}
если сначало использовать cin а потом getline то оно строку пропускает
two steps
6 / 6 / 3
Регистрация: 13.06.2011
Сообщений: 27
07.10.2011, 23:49  [ТС]     getline #3
Мне хотелось бы поподробнее знать почему так происходит.
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
07.10.2011, 23:59     getline #4
Цитата Сообщение от two steps Посмотреть сообщение
cin>>n; //Вводим для примера число 5
getline(cin, str);
ввели число, а нажатый ентер считывается как str, пишите так
C++
1
2
3
std::cin >> n;
std::cin.ignore();
std::getline(std::cin, str);
two steps
6 / 6 / 3
Регистрация: 13.06.2011
Сообщений: 27
08.10.2011, 00:05  [ТС]     getline #5
Спасибо, это именно то, что я хотел услышать.
Yandex
Объявления
08.10.2011, 00:05     getline
Ответ Создать тему
Опции темы

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