C++流の大まかな運用


/* 
 * File:   main.cpp
 * Author: Vicky.H
 * Email:  [email protected]
 */
#include <iostream>
#include <fstream>
#include <sstream>
#include <cstring>

class A {
public:
    friend std::ostream& operator<<(std::ostream& os, const A& ref);
    friend std::istream& operator>>(std::istream& is, A& ref);

    A() { }

    A(const char* name, short age) : age(age) {
        strcpy(this->name, name);
    }
private:
    char name[21];
    short age;
};

std::ostream& operator<<(std::ostream& os, const A& ref) {
    os << ref.name << '
' /** */ << ref.age; return os; } std::istream& operator>>(std::istream& is, A& ref) { is >> ref.name >> ref.age; return is; } /* * */ int main(void) { // std::ofstream ofs("./tmp.txt", std::ios::trunc | std::ios::binary); ofs << A("Lily", 25); // ofs.flush(); ofs.close(); std::ifstream ifs("./tmp.txt", std::ios::in | std::ios::binary); A a2; ifs >> a2; // , ifs.close(); std::cout << a2 << std::endl; std::cout << "---------------------------" << std::endl; // std::ostringstream oss; // oss << A("string",99); oss.flush(); // std::cout << oss.str() << std::endl; std::string str("test
123"); std::istringstream iss(str); // A a3; iss >> a3; // iss.sync(); // std::cout << a3 << std::endl; std::cout << "---------------------------" << std::endl; // std::cout << A("Vicky", 25) << std::endl; A a; std::cout << "input A just like:
Vicky
25" << std::endl; std::cin >> a; std::cout << a << std::endl; std::cout << "---------------------------" << std::endl; return 0; }

Lily
25
---------------------------
string
99
test
123
---------------------------
Vicky
25
input A just like:
Vicky
25
ooxx
1002
ooxx
1002
---------------------------