File IO
2902 ワード
ヘッダファイル:
テストクラス:
#ifndef STUDENT_H_
#define STUDENT_H_
#include <string>
using namespace std;
class Student {
public:
Student();
Student(string, char, string, int);
void setFirstName(string);
void setMiddleName(char);
void setLastName(string);
void setScore(int);
string getFirstName();
char getMiddleName();
string getLastName();
int getScore();
private:
string firstName;
char middleName;
string lastName;
int score;
};
Student::Student() {
}
Student::Student(string firstName, char middleName, string lastName, int score) {
setFirstName(firstName);
setMiddleName(middleName);
setLastName(lastName);
setScore(score);
}
void Student::setFirstName(string firstName) {
this->firstName = firstName;
}
void Student::setMiddleName(char middleName) {
this->middleName = middleName;
}
void Student::setLastName(string lastName) {
this->lastName = lastName;
}
void Student::setScore(int score) {
this->score = score;
}
string Student::getFirstName() {
return firstName;
}
char Student::getMiddleName() {
return middleName;
}
string Student::getLastName() {
return lastName;
}
int Student::getScore() {
return score;
}
#endif /* STUDENT_H_ */
テストクラス:
#include <iostream>
#include <fstream>
#include "Student.h"
using namespace std;
void displayStudent(Student stu);
int main() {
Student stu1("John", 'T', "Smith", 90);
Student stu2("Eric", 'K', "Jones", 80);
displayStudent(stu1);
displayStudent(stu2);
fstream binaryio;
binaryio.open("stu.dat", ios::out | ios::binary);
binaryio.write(reinterpret_cast<char*> (&stu1), sizeof(stu1));
binaryio.write(reinterpret_cast<char*> (&stu2), sizeof(stu2));
binaryio.close();
cout << "--------------------" << endl;
Student stu;
binaryio.open("stu.dat", ios::in | ios::binary);
binaryio.read(reinterpret_cast<char*> (&stu), sizeof(stu));
displayStudent(stu);
binaryio.read(reinterpret_cast<char*> (&stu), sizeof(stu));
displayStudent(stu);
binaryio.close();
}
void displayStudent(Student stu) {
cout << stu.getFirstName() << " " << stu.getMiddleName() << " " << stu.getLastName() << " " << stu.getScore() << endl;
}