Как получить Cin несколько раз в разных строках? - PullRequest
0 голосов
/ 16 апреля 2019

Я хочу получить ввод дважды с одной переменной, строкой и другим символом, но всегда выходит ошибка компиляции, как мне решить эту проблему.Я пробовал cin.clear ();но, похоже, в этом случае он не работает.

#include <iostream>
using std::cout;
using std::cin;
using std::endl;

#include <string>
using std::string;
using std::getline;

int main(){
    string name;
    cout << "Please input a string." << endl;
    getline (cin, name);
    cout << "Hello, there, "<< name  <<".\n";
    char ccc;
    cout << "Please input a character." << endl;
    getline (cin, ccc);
    cout << "This is a alphabet:" << ccc << endl;
    return 0;
}

Я ожидаю, что результат будет выглядеть так:

Please input a string.
John
Hello, there, John.
Please input a character.
c
This is a alphabet:c

Ответы [ 3 ]

2 голосов
/ 16 апреля 2019

Я использовал cin.ignore(); раньше. Это должно очистить буфер. Также char должен использовать getchar вместо getline.

1 голос
/ 16 апреля 2019

Не существует версии getline(), которая принимает char в качестве второго аргумента. Вместо этого вы, вероятно, хотите версию, которая принимает char*. Вам нужно будет изменить свой код, чтобы прочитать строку, содержащую один символ.

0 голосов
/ 16 апреля 2019

Попробуйте getchar () вместо getline () на втором.

...