Archivierung und Abruf BITTE um Hilfe
-
Ok, danke
. Nur leider hat sich mein Hauptproblem damit noch nicht gelöst. Wär super, wenn Hilfe kriegen könnte 
-
Ich hatte die Hoffnung das der Quelltext bei dir übersichtlich formatiert war:
#include<???> // zeige mal deine Header int main() { std::string GESPRÄCH; std::string KUNDE; //und restlichen { std::cout << "Ich kenne Dich nicht. Und Wo wohnst du? \n"; fstream datei6; // Was hältst du von: fstream gespraech statt datei?; datei6.open("Gespräch.h", ios::app); std::cin >> GESPRÄCH; { set<string> namen; { // warum hier Klammer? Kann ja sein das das für dich Sinn macht? std::cout << "Gib deinen Namen ein"; ifstream in("Kunden.h"); // Was spricht gegen ifstream kunde;? for(string wort; in >> wort;) namen.insert(wort); } { // warum hier Klammer? Siehe oben. for(string wort; cin >> wort;)ich hab bestimmt noch etwas übersehen

Da sollten noch ein paar std:: fehlen.Das ich jetzt schon der 2. Quelltext innerhalb von ein paar Tagen, der die Dateiendung ".h" für andere Dateien als Header nutzt. Was soll ".h" bei dir assoziieren?
Sprechende Namen im Quelltext erleichtern mir den Überblick. Bei Datei6 oder Datei4 muss man öfter nachsehen ob man noch die richtige im Visier hat?
-
Die Klammern dienen mir nur zum Überblick und für Nebenbefehle, die aber NICHTS direkt mit dem Rest bewirken.
Ich wollte aber dass die Namen/Nomen eindeutig für mich aufgelistet sind und ich diese, worum es geht, verknüpfen kann und aufrufen,
wie am Anfang beschrieben....
Was sollte ich denn statt dessen machen mit .h? Wie sollte das sein optimaler Weise?
-
.h assoziiert man in der Programmierung normalerweise mit Headerdateien. Solltest du schon einmal von gehört haben. Und deswegen sind auch viele Leser in deinen Threads immer so verwirrt, weil sie sich immer Fragen, was du für Unfug mit Headern treibst und wenden sich mit Grauen ab. Dabei meinst du bloß irgendeine dumme Textdatei ohne besondere Eigenschaften.
-
derdude007 schrieb:
Und was kann statt goto?
Ich kenne viele große C++ Programme, kein einziges goto besitzen. Dazu gibt es Schleifen und Funktionen. Dein Code ist zudem extrem schlecht formatiert, wirklich lesbar ist er jedenfalls nicht. Zudem verwendet man keine Umlaute im C++ Code, und es ist sehr unüblich Variablen komplett in Großschreibweise zu halten (zudem bist du dabei extrem Inkonsequent).
-
Ok,
aber ich möchte später, wenn ich die Datei öffne auch selbst sehen ob es Name oder Nomen ist, und dann die jeweilige Definition. Deshalb fand ich es für angebracht sie unter verschiedenen Verzeichnissen zu speichern!
Und Groß- und Kleinschreibung ist für den Überblick gedacht, dass wenn ich das Wort an sich eingebe, der PC nicht denkt, dass es schon definiert ist, obwohl es drin steht. Es dient meiner Übersicht.Trotzdessen weiss ich leider noch nicht, wie ich mein Problem lösen kann:
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.
-
Ich habe dein Problem nicht einmal verstanden.

Vielleicht erklärst du mal genau, was du erreichen möchtest.- Woran erkennt man, dass ein Wort bekannt ist?
- Woran erkennt man, dass ein Wort definiert ist?
- Wie passen die übrigen Variablen da rein (Gespräch, Kunde, Alles, etc. )
-
Also, das beispiel, was ich oben schrieb ist enorm gekürzt. Das Orginal x-fach so groß, aber darum geht es nicht.
Was ich gerne machen würde:ich gebe einen Begriff ein. Geht
Es wird überprüft ob das Wort schon vorhanden ist. Geht
Wenn ja wird überprüft ob eine dazugehörige Definition vorhanden ist. Geht nicht
Falls das Wort nicht vorhanden ist, soll gefragt werden ob Nomen oder Namen, dann soll nach einer Definition gefragt werden. Geht
Diese Wörter sollen unter der Gruppe Nomen oder Namen, was halt definitert wurde, gespeichert werden.Dann soll, wenn ich ein Wort eingebe die dazugehörige Definition ausgegeben werden. Geht nicht

Die Variabeln sind nur dazu da, damit ich einen übersichtlichenEinblick habe.
Und das alles zusammenzuhängen klappt nicht! Deshalb wär super freundlich für Hilfe,
danke im Vorraus
-
Du bist ja hier bei C++.
Wenn dein Quelltext x-mal so groß ist, hast du schon mal an Container gedacht
Vermute nicht, da du so auf goto stehst.
Du beschreibst dein Programm so als wolltest du ein Lexikon erstellen.
Der Quelltext sieht eher nach einem Sammelautomaten für eine Kundendatei aus.
Schon einen Plan, wenn sich mehrere Karl Mayer oder Sepp Müller melden

-
Wie sähe das mit nem Container denn aus?
std::find, std::search?
Aber wie krieg ich die Verknüpfung der Worte hin, also der Nomen/Name PLUS Definition, und dass beides gesucht wird? Und er ausgibt? Also wenn ich ein Nomen/Namen eingebe, er mir die Definition ausgibt?
-
Es gibt den einfach assoziativen Container
std::map. Du musst jeweils für den Schlüssel und den Wert einen Typ angeben, bei dir sollte das in beiden Fällen einstd::stringsein, alsostd::map<std::string, std::string>. Benutzbar ist das dann so:#include <map> #include <string> #include <iostream> int main() { std::map<std::string, std::string> MyDict; MyDict["Name"] = "Definition von Name"; // oder MyDict.insert( std::make_pair( "Nomen", "Definition von Nomen" ) ); // hässlich, hab aber kein C++11 std::map<std::string, std::string>::const_iterator i = MyDict.find( "Name" ); if( i != MyDict.end() ) { std::cout << "Definition von " << i->first << ": " << i->second << std::endl; } else { std::cout << i->first << " ist nicht definiert." << std::endl; } }Das Suchen funktioniert natürlich nur nach Schlüsseln, wenn du nach weiteren Kriterien suchen willst musst du dir wohl was eigenes basteln (siehe boost::multi_index_container).
Wenn du andere Zuordnungen brauchst (Name -> irgendwas) musst du natürlich den Wertetyp entsprechend ändern.
-
Sieht sehr gut aus, danke. Nur schaffe ich es irgendwie nicht die Daten abzuspeichern. Was muss ich daran ändern um abzuspeichern?
-
Vielleicht solltest du erst ein Mal das hier lesen...
-
DocShoe schrieb:
Vielleicht solltest du erst ein Mal das hier lesen...
Das wurde ihm bereits 8x verlinkt. Aber irgendwie schafft er es trotzdem noch, irgendwie Leute zu finden, die ihm helfen.
-
Ich hab nun ne eigene Möglichkeit, Wörter abzurufen:
Meine Frage dazu wäre:#include <iostream> #include <fstream> #include <sstream> using namespace std; int main() { ifstream fin("example.txt"); string line; while (getline(fin, line)) { istringstream tokenizer(line); string token; getline(tokenizer, token, ','); cout << token << endl; getline(tokenizer, token, ','); istringstream int_iss(token); cout << token << endl; }Wenn ich das Programm ausführe zeigt er mir den kompletten Inhalt an. Ich möchte es aber nur auf eine Zeile beschränken, dass er mir nicht den kompletten Inhalt anzeigt, sondern nur die eine Zeile, nach der ich suchte.
Wie kriege ich das genau hin?
Danke im Vorraus
-
boah, gtfo pls
-
Was heißt
gtfo pls????
Ich habe nur diese einzige Frage:
Ich hab nun ne eigene Möglichkeit, Wörter abzurufen:
Meine Frage dazu wäre:#include <iostream> #include <fstream> #include <sstream> using namespace std; int main() { ifstream fin("example.txt"); string line; while (getline(fin, line)) { istringstream tokenizer(line); string token; getline(tokenizer, token, ','); cout << token << endl; getline(tokenizer, token, ','); istringstream int_iss(token); cout << token << endl; }Wenn ich das Programm ausführe zeigt er mir den kompletten Inhalt an. Ich möchte es aber nur auf eine Zeile beschränken, dass er mir nicht den kompletten Inhalt anzeigt, sondern nur die eine Zeile, nach der ich suchte.
Wie kriege ich das genau hin?
Danke im v******
-
get the fu.ck out, soweit helfe ich dir noch...
edit:
please