Wie zu stelle der Bibilothek/Header springen



  • Was heißt "eingeben"? Meinst du Auto-Completion in der IDE? Oder in einem laufenden Programm?

    Was meinst du mit "springen"?

    Bitte formulier dein Problem ausführlich und mit möglichst aussagekräftigem Code.



  • Also, beispielsweise
    cout << "Bitte namen eingeben";

    {
    set<string> NAMEN;
    {
    ifstream in("Namen1.h");

    for(string NAMEN; in >> NAMEN;)
    namen.insert(NAMEN);
    }
    {
    for(string NAMEN; cin >> NAMEN;)
    if (namen.count(NAMEN))

    //wenn Name vorhanden, dann zu DIREKT zu dem Namen in der Datei(Namen1.h) springen
    //und in dieser Datei hinter dem Namen schreiben
    "dieser Name wurde schon genannt", dann zurück zum .cpp }

    //NEXT4:
    else
    cout << "Du bist neu";
    }
    }


  • Mod

    1. Benutz doch endlich mal die cpp-Tags! Das wurde dir bisher schon bei jedem deiner Beiträge gesagt!
    2. Wenn du meinen Code benutzt, dann versteh ihn auch!
    3. In Dateien kann man nicht wirklich einfügen. Solange die Dateien klein sind (d.h. weniger als ungefähr ein Gigabyte), dann lad die ganze Datei, verändere sie während deines Programms nach Gutdünken und schreib sie dann wieder raus. Bei dir bietet es sich an, die Datei in eine Datenstruktur zu laden, in der man gut Suchen und Einfügen kann, zum Beispiel eine Kombi aus list<string> (oder auch vector<string> und map<string, list<string>::iterator>> (oder map<string, size_t>) als Suchindex.



  • 1. der andere Beitrag war von nem Freund.

    2. Wie sieht dass dann aus mit Datenstrukur zu laden?


  • Mod

    Franko schrieb:

    1. der andere Beitrag war von nem Freund.

    Sicher. Der zufällig genau die gleicheAufgabe macht, die aber ganz ehrlich keine Hausaufgabe ist 🙄 . Ach, soll mir doch egal sein.

    2. Wie sieht dass dann aus mit Datenstrukur zu laden?

    Hab ich doch schon zwei Varianten vorgeschlagen. Was willst du mehr?



  • Das geht nur aus dem Zusammenhang gerissen. Du müsstest den Pointer schon sehr weit umbiegen, sodass NULL nicht mehr ganz da ist. Allerdings hab selbst ich das nicht geschafft, da mir der entsprechende Hochleistungsprozessor fehlt.

    Jedoch ergeben sich bei Gleitkommazahlen manchmal Verschiebungen. Bei Bitoperatoren kannst du aber dein Namensverzeichnis problemlos in die Header-Datei inkludieren. Schau mal bei Google nach "selbstinkludierende Bitoperatoren". Der erste Beitrag sollte dir helfen.

    Ansonsten weiter so 👍



  • Also, was ich machen will EINFACH erläutert, beispiel Bundesliga:
    1.
    2 Vereine, Werder Bremen & Herta BSC sind gegeben.
    Dazu kann ich Spielernamen eingeben, die er speichert unter dem zugehörigen Verein!

    2. Wenn ein Spieler bereits vorhanden ist, dann nicht mehr speichern.

    3. Es muss ein anderer Spielername des Vereins als Antwort gegeben werden!

    4. Ich kann einen weiteren Verein hinzufügen, wo wiederum neue Spieler gespeichert werden können.

    Wie kriege ich es exakt und genau hin. Finde immer nur einzelne Teile, doch passen diese NIE zusammen!!!

    Danke schonmal für Hilfe!


  • Mod

    Lies dir bitte mal den Link "Du brauchst Hilfe?" in meiner Signatur durch. Bisher ist eigentlich nur deine Aufgabenstellung klar, nicht womit du Schwierigkeiten hast (beziehungsweise wurden deine Teilprobleme bereits gelöst, wieso kannst du sie nicht zusammensetzen?).


  • Mod

    Franko! Ich bin nicht dein Privatlehrer. Dass dir keiner helfen möchte, liegt an deiner Frage, nicht daran, dass du den Leuten keine privaten Nachrichten schickst.



  • 😉 😉
    #include "stdafx.h"
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <iostream>
    #include <ostream>
    #include "stdafx.h"
    #include <windows.h>
    #include <tchar.h>
    #include <stdio.h>
    #include <strsafe.h>
    #include <iostream>
    #include <string>
    #include <fstream>
    #include <vector>
    #include <algorithm>
    #include <iostream>
    #include <string>
    #include <fstream>
    #include <set>
    using namespace std;

    #define BUFFER_IS_NEWLINE ((buffer[1]=='\n') || (buffer[1]=='\r'))

    void DEFINIERE1()
    {cout << "Bitte definieren Sie den Begriff mit einem letzten Wort" << endl;
    }

    void DEfinition(FILE *WOERTER) {cout << "Bitte definieren Sie den Begriff mit einem Wort \n"; }

    int main()
    {
    std::string ARTIKEL2;
    std::string GESPRÄCH;
    std::string WOrt;
    std::string KUNDE;
    std::string KUNDEN;
    std::string WORTE;
    std::string GENANNT;
    std::string FEHLER;
    std::string ARTIKEL;
    std::string DEFINITION;
    std::string HASI;
    std::string STRAUCHDIEB;
    std::string ALLES;

    std::string VERB;
    std::string NOMEN;

    {
    REfrain();
    }

    //

    {
    cout << "\n Bitte erneut Namen eingeben \n";

    set<string> KUNDE;
    {
    ifstream in("Kunden.h");

    for(string wort; in >> wort;)
    KUNDE.insert(wort);
    }
    {
    for(string wort; cin >> wort;)
    if (KUNDE.count(wort))

    goto NEXT4;

    else
    goto NEXT4;

    }

    }
    {NEXT4:
    cout << "Ich kenne Dich nicht. Ich wohne in Essen. Und Wo wohnst du? \n";

    fstream datei6;
    datei6.open("Gespräch.h", ios::app);
    cin >> GESPRÄCH;

    //MODERN TAKING

    // NEXT1:

    //Satz auf Worte Prüfen

    {
    set<string> namen;
    {
    cout << "Gib deinen Namen ein";
    ifstream in("Kunden.h");

    for(string wort; in >> wort;)
    namen.insert(wort);
    }
    {
    for(string wort; cin >> wort;)
    if (namen.count(wort))

    goto NEXT2;

    //NEXT4:
    else
    {

    cout << "Inhalt nicht vorhanden.\n Ich kenne das Wort " << wort << " nicht. Ist es ein Nomen, oder ein Name?";
    cin >> WORTE;
    {
    fstream datei1;
    fstream datei2;

    if (WORTE == "Nomen")
    {
    {
    datei1.open("Nomen1.h", ios::app);
    datei2.open("Nomen2.h", ios::app);

    {

    cout << "Wie lautet der Singular?" << endl;

    cin >> GENANNT;
    datei1 <<"\n" << GENANNT << endl;

    }
    }

    {

    cout << "Bitte definieren Sie den Begriff mit einem Wort" << endl;

    cin >> DEFINITION;
    datei2 << DEFINITION << endl;

    }
    }

    else if (WORTE == "Name")
    {
    datei1.open("Name.h1", ios::app);

    {
    cout << "Wer ist das?" << endl;

    cin >> GENANNT;
    datei1 <<"\n" << GENANNT << "\n " << endl;
    }
    }

    datei1 << GENANNT << endl;
    datei2 << GENANNT << endl;
    }
    }

    }
    }

    {
    NEXT2:

    cout << ".";

    }

    }

    cout << "Ende";
    cin.get();
    getchar();
    return EXIT_SUCCESS;
    }

    Und hier das Problem:

    ich kann zwar abspeichern, doch nicht auf die DEFINITION oder NAMEN/Nomen zurückgreifen! Also kann ich, wenn ich einen NAMEN/NOMEN eingebe keine DEFINITION kriegen, und wenn ich die DEFINITION eingebe, keinen NAMEN/NOMEN kriegen.

    Was ich möchte:
    Gebe Wort/Satz ein, es wird geprüft ob es vorhanden UND definiert ist.
    Falls nicht, muss es getan werden.
    Wenn ich dann ein Wort eingebe und es da ist, möchte ich dessen Definition ausgegeben kriegen.

    Danke im Vorraus für Hilfe!


  • Mod

    Wiederholtes nicht benutzen der Codetags, keinerlei Eigeninitiative, einfach nur Aufgabenstellung gepostet.

    Keinerlei Abstellung dieses Verhaltens trotz inzwischen dreifachem geduldigen Hinweisens.

    Das hat keinen Sinn mehr.


Anmelden zum Antworten