在结构中使用 c++ 样式字符串时,cin >> 的正确语法是什么?

What is the correct syntax for cin >> when using c++ style strings inside structures?

我在尝试找出如何将 std::cin >> 与字符串组合时遇到了一些麻烦,其中字符串位于结构内部,就像这样。

#include <iostream> // for cout and cin
#include <string>   // for string

struct Example
{
    std::string SomeString;
};

int main()
{
    std::cin >> Example.SomeString;    // ERROR!
}

您首先必须定义一个结构类型的对象,您将在其中读取数据。例如

#include <iostream> // for cout and cin
#include <string>   // for string

struct Example
{
    std::string SomeString;
};

int main()
{
    Example e;
    std::cin >> e.SomeString;
}

如果数据成员被定义为静态的,那么语法将类似于

#include <iostream> // for cout and cin
#include <string>   // for string

struct Example
{
    static std::string SomeString;
};

std::string Example::SomeString;

int main()
{
    std::cin >> Example::SomeString;
}

这里有一个结合了前两者的例子。

#include <iostream> // for cout and cin
#include <string>   // for string

struct Example
{
    std::string SomeString;
    static std::string OtherString;
};

std::string Example::OtherString;

int main()
{
    Example e1;

    std::cin >> e1.SomeString;

    Example *e2 = &e1;

    std::cin >> e2->SomeString;

    std::cin >> Example::OtherString;
}