c++结构体如何打印输出
时间: 2023-07-19 22:35:49 浏览: 53
在 C++ 中,结构体可以通过重载运算符 "<<" 来实现打印输出。具体的实现方法如下:
```c++
#include <iostream>
#include <string>
using namespace std;
struct Person {
string name;
int age;
};
ostream& operator<<(ostream& os, const Person& p) {
os << "Name: " << p.name << ", Age: " << p.age;
return os;
}
int main() {
Person p = {"Tom", 20};
cout << p << endl; // 输出: Name: Tom, Age: 20
return 0;
}
```
在上面的代码中,我们定义了一个名为 `Person` 的结构体,并且重载了运算符 "<<",使其可以直接输出 `Person` 类型的对象。在 `operator<<` 函数中,我们将 `Person` 对象的成员变量 `name` 和 `age` 输出到 `ostream` 中,并且返回 `ostream` 对象的引用。
在 `main` 函数中,我们定义了一个 `Person` 对象 `p`,并且使用 `cout` 输出 `p`,由于我们已经重载了运算符 "<<",所以 `cout` 可以直接输出 `p`。
相关问题
c++结构体如何输出数组
假设有一个结构体类型为`Person`,其中包含一个名为`name`的字符串数组和一个名为`age`的整数数组,可以按照以下方式输出数组:
```cpp
#include <iostream>
using namespace std;
struct Person {
string name[3];
int age[3];
};
int main() {
Person person = { {"Tom", "Jerry", "Alice"}, {20, 25, 30} };
for (int i = 0; i < 3; i++) {
cout << "Name: " << person.name[i] << ", Age: " << person.age[i] << endl;
}
return 0;
}
```
输出结果为:
```
Name: Tom, Age: 20
Name: Jerry, Age: 25
Name: Alice, Age: 30
```
在上面的代码中,使用了一个结构体类型`Person`,其中包含两个数组`name`和`age`。在`main`函数中,定义了一个`Person`类型的变量`person`,并初始化了该变量的`name`和`age`数组。最后使用`for`循环遍历数组并输出每个元素的值。
c++结构体套结构体
下面是一个C++结构体套结构体的例子:
```c++
#include <iostream>
using namespace std;
// 定义内部结构体
struct Date {
int year;
int month;
int day;
};
// 定义外部结构体
struct Student {
string name;
int age;
Date birthday; // 内部结构体作为外部结构体的成员
};
int main() {
// 创建一个学生对象
Student stu = {"Tom", 18, {2003, 1, 1}};
// 输出学生信息
cout << "Name: " << stu.name << endl;
cout << "Age: " << stu.age << endl;
cout << "Birthday: " << stu.birthday.year << "-" << stu.birthday.month << "-" << stu.birthday.day << endl;
return 0;
}
```
在上面的例子中,我们定义了两个结构体,一个是内部结构体`Date`,表示日期,另一个是外部结构体`Student`,表示学生。在`Student`结构体中,我们将`Date`结构体作为一个成员变量,表示学生的生日。在`main`函数中,我们创建了一个学生对象`stu`,并初始化了它的成员变量。最后,我们输出了学生的信息,包括姓名、年龄和生日。