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