在C++中直接读取struct

Pat*_*ski 1 c++ cin

假设我有一些结构,例如Rectangle:

struct Rectangle
{
    int x0, x1, y0, y1;
};
Run Code Online (Sandbox Code Playgroud)

是否可以以一种能够调用的方式创建Rectangle结构:

Rectangle rec;
cin >> rec;
Run Code Online (Sandbox Code Playgroud)

?我认为应该可以以某种方式实现它,但我没有足够的经验.

放弃

我不是在找这个:

cin >> rec.x0 >> rec.x1 >> rec.y0 >> rec.y1;
Run Code Online (Sandbox Code Playgroud)

R S*_*ahu 10

您可以使用:

Rectangle rec;
cin >> rec;
Run Code Online (Sandbox Code Playgroud)

如果你定义一个合适的operator>>功能.

std::istream& operator>>(std::istream& in, Rectangle& rec)
{
   return (in >> rec.x0 >> rec.x1 >> rec.y0 >> rec.y1);
}
Run Code Online (Sandbox Code Playgroud)

如果不允许定义此类函数,则无法使用要使用的语法.