C++ Tagebuch

in #deutsch12 days ago

Ich habe mich versucht in C++ ein digitales Tagebuch zu schreiben. Es ist relativ primitiv und ich habe auch nicht eins zu eins selbst alles umgesetzt. Bei manchen Teilen war auch die KI zur Hilfe. Für den Code habe ich aber nur die Teile verwendet, welche ich selbst verstehe und auch umsetzen kann.

Es ist ein Konsolenprogramm

grafik.png

Hier haben wir die Auswahl, lesen oder schreiben. Das Datum wird angegeben, dann der Text. Was mir besonders Spaß gemacht hat, ist eine sehr einfache Verschlüsselung einzubauen, wie der Text dann in Datei geschrieben wird.

Vielleicht findet ihr raus, welche Passage im Code die Verschlüsselung ist, und was die macht.

grafik.png

  1. Vom Tagebuch lesen entschlüsselt für einen den Text wieder. Das ist natürlich sinnlos, wenn beide im selben Ordner sind. Aber for fun könnte man sich die Hauptdatei als Verknüpfung wo anders hinlegen.
#include <iostream>
#include <fstream>

class Tagebuch {
private:
    std::string datum;
    std::string text;

public:
    Tagebuch() {}   // leerer Start

    void eintrag_datum() {
        std::cout << "Bitte gib das Datum ein: ";
        std::getline(std::cin, datum);
    }

    void eintrag_text() {
        std::cout << "Bitte gib den Text ein: ";
        std::getline(std::cin, text);
    }
    void ausgabe() {
        std::ofstream datei("Tagebuch.txt", std::ios::app);

        for (char &x : text) {
            x += 37;
        }

        datei << datum << "\n" << text << "\n\n";
    }



    void lesen(const std::string& dateiname) {
        std::ifstream file(dateiname);

        while (std::getline(file, datum)) {

            if (datum.empty()) {
                continue;   // Leerzeile überspringen
            }

            std::getline(file, text);

            for (char &x : text) {
                x -= 37;
            }

            std::cout << datum << "\n";
            std::cout << text << "\n\n";
        }
    }


};

void menue(int x){
    std::cout << "1. Ins Tagebuch schreiben\n";
    std::cout << "2. Vom Tagebuch lesen\n\n\n";
}

int main(){
    Tagebuch benutzer;
    int auswahl;
     menue(auswahl);
    std::cin >> auswahl;
    std::cin.ignore();

    switch(auswahl){

        case 1: {
            benutzer.eintrag_datum();
            benutzer.eintrag_text();
            benutzer.ausgabe();
            std::cout << "Eintrag gespeichert!";
            break;
        }

    case 2:
        benutzer.lesen("Tagebuch.txt");
        break;

    default:
        std::cout << "Nur Tasten 1 oder 2 möglich.";
        break;
    }

}