Ввести строку из нескольких слов с другими типами ввода в одной строке - PullRequest
0 голосов
/ 18 апреля 2019

Итак, предположим, что я хочу дать строку ввода, например:

12345 Меня зовут Foo

Я хочу сохранить 12345 в int и "Меня зовут Foo" встрока.Я знаю, что есть функция std :: getline, но она включает всю строку.Кроме того, «Меня зовут Foo» включает пробелы, так что это не так просто.Так как же мне поступить?Спасибо, я новичок в C ++.

int i;
std::string s;

std::cin >> ...

Так что если я введу:

12345 Меня зовут Foo

, тогда я = 12345 и s = "Мое имятакое Foo "

1 Ответ

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

Вы можете использовать как std::cin, так и std::getline(), а @CruzJean предложил использовать std::istream::sentry для игнорирования пробелов:

#include <iostream>
#include <string>

int main() {

    std::string name;
    int n;

    std::cin >> n;
    std::istream::sentry sentry(std::cin);
    std::getline(std::cin, name);

    std::cout << name << "\n";
    std::cout << n << "\n";

    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...