|
std::vector<char> input; でバイナリデータを扱いたかったので、
以下のコードで確認できました。
επιστημη さん ありがとうございました。
#include <iostream>
#include <vector>
#include <string>
#include <sstream>
class Person {
int age;
std::string name;
public:
friend std::istream& operator>>(std::istream& stream, Person& p) {
stream.read(reinterpret_cast<char*>(&p.age), sizeof(int));
return stream >> p.name;
}
void print() const {
std::cout << name << " は " << age << " 才\n";
}
};
int main() {
std::vector<char> input;
input.push_back(28);
input.push_back(0);
input.push_back(0);
input.push_back(0);
input.push_back('m');
input.push_back('n');
input.push_back('o');
input.push_back('w');
// ココ!
std::istringstream stream(std::string(input.begin(),input.end()));
Person person;
stream >> person;
person.print();
}
|