Проблема с iostream - PullRequest
       8

Проблема с iostream

4 голосов
/ 25 августа 2010

Я использую MinGW для запуска компилятора g ++ на Windows.Всякий раз, когда я запускаю следующий код, компилятор выдает странные результаты.

Код:

#include <iostream>
#include <cstring>

using namespace std;

int main()
{
    int n;
    string a;
    cin>>n;
    getline(cin,a);
    cout<<a;
    return 0;
}

При компиляции кода проблем не возникает.Но как только я запускаю код и даю ввод для n, он никогда не запрашивает ввод a и заканчивается.Я использую MinGW 5.1.6, есть ли проблемы с этим или есть проблема с моим кодом?

Ответы [ 2 ]

4 голосов
/ 25 августа 2010

Проблема в вашем коде. В двух словах, новая строка, которую вы вводите, чтобы зафиксировать число для n, все еще сохраняется во входном буфере, поскольку не является числовым вводом, поэтому не используется n. Затем функция getline поглощает символ новой строки и завершает работу.

3 голосов
/ 25 августа 2010

cin>>n читает число, но оставляет новую строку в буфере.Когда вы вызываете getline, он читает символ новой строки как пустую строку, печатает его, а затем возвращает из main.Так или иначе, перед вызовом getline.

необходимо вывести остаток строки из буфера ввода.
...