Modernes C++ programmieren

Okt 20, 2024

lst-0018-book.cpp

// https://godbolt.org/z/bz6n3Pjrv 
// Excerpt. Person as before
void Person::print(std::ostream& os) {
    os << format("{} ({}) from {}", name_, age_, city_);
}
int main() {
    Person carl {"Carl", 12, "Toledo"};
    carl.print(cout);          // on the screen
    cout << "\n";
    std::ofstream file {"persons.txt"};
    carl.print(file);          // to a file
    // automatic test:
    std::ostringstream oss{};  // writes to a string
    carl.print(oss);
    if(oss.str() == "Carl (12) from Toledo") {
        cout << "ok\n";
    } else {
        cout << "Error in Person::print!\n";
        return 1;              // propagate error outward
    }
}