在一行中输入具有其他输入类型的多个单词字符串

时间:2019-04-18 18:11:57

标签: c++ input

所以假设我要输入一行,例如:

12345我叫Foo

我想将12345存储为一个整数,并将“我的名字为Foo”存储为一个字符串。我知道有一个功能std :: getline,但这包括整行。另外,“我的名字叫Foo”包含空格,因此它并不那么简单。那我该怎么做呢?谢谢,我是C ++的新手。

int i;
std::string s;

std::cin >> ...

所以,如果我输入:

12345我叫Foo

然后我= 12345,并且s =“我叫Foo”

1 个答案:

答案 0 :(得分:0)

您可以同时使用std::cinstd::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;
}