是否可以将输入作为参数进行内联传递

时间:2017-03-13 09:23:48

标签: c++

我认为我的问题可以通过代码更好地说明,是否可以执行以下操作: C# SetSomeMember(sc.nextLine()) 要么 Java的 SetSomeMember(std::cin)

在C ++中?就像是: recordDOM

1 个答案:

答案 0 :(得分:0)

如果您想从T快速获取std::cin类型的值,您可以创建一个简单的辅助函数:

template <typename T>
T get_from_cin()
{
    T result;
    std::cin >> result;
    return result;
}

然后您可以按如下方式使用它:

struct foo
{
    void setSomeMember(int);
};

int main()
{
    foo f;
    f.setSomeMember(get_from_cin<int>());
}

如果您希望将整行作为std::string,请查看std::getline

用法:

std::string temp;
std::getline(std::cin, temp);

whatever.setSomeMember(temp);