c ++中的格式化输入

时间:2010-04-01 02:05:45

标签: c++ vector user-input

嘿,我是c ++的菜鸟(和一般的编码) 我正在寻找一种从键盘上取两个双打(一次)的简单方法,并将它们存储在我创建的名为“Point”的结构中,然后最终将Point存储到一个Point的矢量中,这是一个类的成员(称为“多边形”)。 我知道我可以用scanf来做,但需要知道如何用cin做。

希望这是有道理的。

提前致谢

Julz超级

2 个答案:

答案 0 :(得分:3)

另一种方法是重载>>这样它就可以直接在你的结构上运行:

struct Point {
    int x;
    int y;

    friend std::istream& operator >>(std::istream& stream, Point& p) {
        return stream >> p.x >> p.y;
    }
}

您返回流,以便您可以使用内置类型链接输入:cin >> p1 >> p2 >> p3。在这种特定情况下,操作员可以是独立的功能,而不是朋友,但一般来说,朋友更容易使用。

This提供了很多关于此类事情的有用细节。

答案 1 :(得分:2)

你可以这样做:

double d1,d2;
cin>>d1>>d2;

或者您可以直接将其读入您的结构变量:

point p;
cin>>p.x>>p.y;

假设您的结构定义如下:

struct point {
 double x;
 double y;
}