c++ - C++ 中的格式化输入

标签 c++ vector user-input

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

希望这是有道理的。

提前致谢

朱兹

最佳答案

另一种方法是重载>>,以便它直接在您的结构上运行:

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。在这种特定情况下,运算符(operator)可以是一个独立的功能,而不是 friend ,但一般来说, friend 更容易合作。

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

关于c++ - C++ 中的格式化输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2557729/

相关文章:

c - 阅读双倍时的 scanf 问题

C++ 多重逻辑运算符

c++ - 您可以将 QWebView cookies/session 与 QNetworkAccessManager 一起使用吗?

c++ - 如何填充 vector <vector <Foo*>>?

C++ 将 std::vector<Derived>* 转换为 std::vector<Base> ...?

c++ - 将文件保存到用户在 C++ 中输入定义的位置和名称

jquery - HTML:&lt;input&gt; 元素在用户输入后改变位置

c++ - #define NULL 空

c++ - STL 映射作为默认参数

c# - microsoft.bcl.simd 发生了什么?