Dipl.-Ing. Martin Weitzel, 64380 Roßdorf bei Darmstadt

Feig2019-08

#include "pxtn.h"

#include <sstream>

PN_(TDD demo mit istringstream und ostringstream)

void say_hello(std::istream& in, std::ostream& out) {
    std::string name;
    // TBD: Lesen Sie von `in` in einer Schleife, bis
    // `in.eof()` den Wert `true` liefert und verketten
    // Sie das Ergebnis jeweils durch ein Leerzeichen getrennt
    // in name, so dass auch längere durch Leerzeichen begrenzte
    // Namensteile als ein einzelner Name erkannt werden
    in >> name;
    out << "hello, " << name << std::endl;
}

void say_hello_test() {
    {
    std::istringstream prepared_input("Mary");
    std::ostringstream received_output;
    // -------------------------------------------
       say_hello(prepared_input, received_output);
    // -------------------------------------------
    PX_("hello, Mary\n", received_output.str());
    }
    {
    std::istringstream prepared_input("Tom-and-Jerry");
    std::ostringstream received_output;
    // -------------------------------------------
       say_hello(prepared_input, received_output);
    // -------------------------------------------
    PX_("hello, Tom-and-Jerry\n", received_output.str());
    }
    {
    std::istringstream prepared_input("Tom and Jerry");
    std::ostringstream received_output;
    // -------------------------------------------
       say_hello(prepared_input, received_output);
    // -------------------------------------------
    PX_("hello, Tom and Jerry\n", received_output.str());
    }
}

void largest_word(std::istream& in, std::istream& out) {
        // TBD bestimmen Sie das laengste Wort in `in` und geben Sie
        // nur dieses ueber `out` zurueck.
}

void largest_word_test() {
        // TBD
}

void longest_line_test(std::istream& in, std::istream& out) {
        // TBD bestimmen Sie die laengste Zeile in `in` und geben Sie
        // nur diese ueber `out` zurueck.
        // HINWEIS: Statt mit `operaror>>` lesen Sie mit `in.getline`
}

void longest_line_test() {
        // TBD
}


#ifdef INTERACTIVE
int main() {
        say_hello(std::cin, std::cout);
}
#else
int main() {
        say_hello_test();
        largest_word_test();
        longest_line_test();
}
#endi