Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > функция cin.getline


Автор: ramzes3 2.4.2007, 17:19
  Здравствуйте, я новичек в С++. Возникла следующая проблема. Вот код (файл main.cpp)
#include <iostream>
#include <string>

int main()
{
    using namespace std;
        char year[256];
        string name;

cout<<"Hi, what's your name?";
cin>>name;
cout<<"how old are you?:\n";
cin.getline(year,256);
cout<<year;
}
Когда я запускаю exe файл программа не дает мне ввести переменную year.  Подскажите, в чем проблема, заранее спасибо. 

Автор: Xenon 2.4.2007, 17:30
Зачем возвраст считывать строкой? Он у тебя с пробелами может быть? Читай просто через std::cin. Но если ты уверен в своих намерениях.
Код

using namespace std;
int main(int argc, char* argv[])
{
    char year[256];
    string name;
    cout << "Hi, what's your name?";
    cin >> name;
    cin.sync();
    cout << "how old are you?: ";
    cin.getline(year,256);
    cout << year;
    return 0;
}

Автор: ramzes3 2.4.2007, 17:35
  спасибо, а не могли бы вы объяснить поподробнее, что делает функция cin.sync(), как я понял, проблема была в связи с ее отсутствием.

Автор: Xenon 2.4.2007, 17:39
ramzes3, Чистит буфер в данном случае.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)