C++对类对象信息的读入和输出
时间: 2024-10-07 07:08:26 浏览: 19
在C++中,对于类的对象信息,通常使用`ios`(Input/Output Stream)库提供的`setw()`和`setprecision()`等成员函数来进行读取和输出。如果你有一个自定义的类,并希望序列化其数据到文件或从文件反序列化,可以借助`operator<<`(输出运算符)和`operator>>`(输入运算符)。
例如,假设我们有这样一个简单的`Person`类:
```cpp
class Person {
public:
int id;
double height;
string name;
// 输出运算符
friend std::ostream &operator<<(std::ostream &os, const Person &p) {
os << "ID: " << p.id << ", Name: " << p.name << ", Height: " << p.height << std::endl;
return os;
}
// 输入运算符
friend std::istream &operator>>(std::istream &is, Person &p) {
is >> p.id >> p.name >> p.height;
return is;
}
};
```
你可以这样进行读写操作:
```cpp
int main() {
Person john(1, 1.85, "John Doe");
// 写入到文件
std::ofstream outFile("person_info.txt");
outFile << john; // 自动调用operator<<
// 从文件读取
std::ifstream inFile("person_info.txt");
Person loadedPerson;
inFile >> loadedPerson; // 自动调用operator>>
// 检查读取是否成功
if (!inFile) {
std::cerr << "Error reading from file." << std::endl;
} else {
std::cout << "Loaded person: " << loadedPerson << std::endl;
}
return 0;
}
```
阅读全文