Einen Text in eine Datei speichern -AUfgabe -
-
Hallo ..
kann mir bitte jemand helfen um diese Aufgabe zu lösen
ich kome nicht klar was ich machen soll !!""(Ein Unternehmen vertreibt verschiedene Getränke. Oft stellen Kunden Fragen
zu den Produkten. Damit die E-Mail mit den Fragen an den richtigen Mitarbeiter gelangt, soll ein Programm erkennen, um welche Produktsorte es geht und
einen Text in eine Datei speichern. Das von Ihnen zu entwerfende Programm
soll also in einem Text (einzulesen aus einer Datei, Dateiname wird abgefragt)
Schlagworte (siehe Tabelle) suchen und je nach Ergebnis folgenden Text generieren und speichern:Hi <name>, du hast eine neue Nachricht zum Thema <buzzword>.
buzzwordname ---name--- outputfile
Kaffee ------------------Paul---- new_mail_to_Paul.txt
Bohnen -----------------Paul---- new_mail_to_Paul.txt
Saft----------------------- Phil ----new_mail_to_Phil.txt
Wasser------------------ Phil---- new_mail_to_Phil.txt
-
@peter00
Du sollst Hi Paul, du hast eine neue Nachricht zum Thema Kaffee. in die Datei new_mail_to_Paul.txt schreiben. Usw.Die Worte und Dateinamen musst du einlesen.
-
@manni66
aha ok also die datei new_mail_to_Paul.txt sollte vorhanden ?so ist?
fstream file;
file.open("new_mail_to_Paul.txt ",ios::out | ios::app)
file>>"Hi Paul, du hast eine neue Nachricht zum Thema Kaffee"
file.close();
-
@peter00 sagte in Einen Text in eine Datei speichern -AUfgabe -:
@manni66
aha ok also die datei new_mail_to_Paul.txt sollte vorhanden ?Nein, warum?
so ist?
fstream file;
file.open("new_mail_to_Paul.txt ",ios::out | ios::app)
file>>"Hi Paul, du hast eine neue Nachricht zum Thema Kaffee"
file.close();Dein Compiler sollte dazu eine Meinung haben.
Benutze ofstream, wenn du schreiben willst.
-
@manni66
aha okay also so lautet den Code :ofstream file;
ofile.open("new_mail_to_Paul.txt ")
file>>"Hi Paul, du hast eine neue Nachricht zum Thema Kaffee"
file.close();
-
@peter00
Nein. Benutze deinen Compiler!
-
@peter00 Was hast Du in der Vorlesung gemacht?
#include <cstdlib> #include <stdexcept> #include <utility> #include <vector> #include <string> #include <sstream> #include <fstream> #include <iostream> int main() { std::vector<std::pair<std::string, std::string>> buzzword_employee_map { { "Kaffee", "Paul" }, { "Bohnen", "Paul" }, { "Saft", "Phil" }, { "Wasser", "Phil" } }; auto output_filename_prefix{ "new_mail_to_ " }; auto output_filename_postfix{ ".txt" }; auto mail_greeting{ "Hi" }; auto mail_body{ "du hast eine neue Nachricht zum Thema " }; try { std::cout << "Filename?\n"; std::string input_filename; if (!(std::cin >> input_filename)) throw std::runtime_error{ "Input error" }; std::ifstream is{ input_filename }; if (!is.is_open()) throw std::runtime_error{ "File couldn't be opened for reading" }; std::string text(std::istreambuf_iterator<char>(is), {}); std::string buzzword; std::string employee; for (auto pair : buzzword_employee_map) { std::cout << pair.first << '\n'; if (text.find(pair.first) != text.npos) { buzzword = pair.first; employee = pair.second; break; } } if (!buzzword.length()) { std::cout << "No Buzzword found.\n\n"; return EXIT_SUCCESS; } std::stringstream output_filename; output_filename << output_filename_prefix << employee << output_filename_postfix; std::ofstream os{ output_filename.str() }; if (!os.is_open()) throw std::runtime_error{ "File couldn't be opened for writing" }; os << mail_greeting << ' ' << employee << ",\n" << mail_body << buzzword << ".\n"; } catch (std::runtime_error & e) { std::cerr << e.what() << " :(\n\n"; return EXIT_FAILURE; } catch (...) { std::cerr << "An unknown error occured :(\n\n"; return EXIT_FAILURE; } }