📜  C++中的输入输出运算符的级联(1)

📅  最后修改于: 2023-12-03 14:39:59.165000             🧑  作者: Mango

C++中的输入输出运算符的级联

在C++中,输入输出运算符<<>>可以级联使用。这意味着我们可以一行代码中使用多个输入输出运算符,使代码更加简洁和易于阅读。

输出操作符的级联

输出操作符<<可以用于向标准输出流中打印多个值。例如:

int a = 10, b = 20, c = 30;
std::cout << "a = " << a << ", b = " << b << ", c = " << c << std::endl;

在上面的代码中,我们使用了三个输出操作符<<将变量a、b和c的值输出到标准输出流中。在每个输出操作符后面,我们提供了一个字符串,用于增加输出的信息。输出结果为:

a = 10, b = 20, c = 30
输入操作符的级联

输入操作符>>同样可以级联使用,用于从标准输入流中读取多个值。例如:

int x, y, z;
std::cout << "Enter three integers: ";
std::cin >> x >> y >> z;
std::cout << "You entered: " << x << ", " << y << ", " << z << std::endl;

在上面的代码中,我们使用了三个输入操作符>>从标准输入流中读取三个整数。在最后一个输入操作符后面,我们可以直接使用提取的变量进行输出。输出结果为:

Enter three integers: 10 20 30
You entered: 10, 20, 30
自定义类型的输入输出

我们还可以为自定义的类型(如类或结构体)定义自己的输入输出运算符,以便进行级联操作。例如:

class Point {
public:
    int x, y;

    friend std::ostream& operator<<(std::ostream& os, const Point& p) {
        os << "Point(" << p.x << ", " << p.y << ")";
        return os;
    }

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

int main() {
    Point p;
    std::cout << "Enter a point (x y): ";
    std::cin >> p;
    std::cout << "You entered: " << p << std::endl;
    return 0;
}

在上面的代码中,我们定义了自己的输出运算符<<和输入运算符>>,以便对Point类的实例进行级联操作。在主函数中,我们使用了输入运算符从标准输入流中读取了一个Point类型的数据,并使用输出运算符将其输出到标准输出流中。输出结果为:

Enter a point (x y): 10 20
You entered: Point(10, 20)

这样,我们就可以方便地使用输入输出运算符的级联了。