c++ code von einer textdatei in programm einbeziehen

Hallo. Wie kann ich, wenn ich einen Code in einer Textdatei habe, also kein normaler Text der angezeigt werden soll, sondern einen richtigen Code, der in das Programm einbezogen werden soll. Geht das überhaupt?
 
Ich denke nicht das zur Runtime ein Quellcode kompiliert werden kann :x
Oder du müsstest in deinem Programm einen Compiler aufrufen ( g++ , mingw ? ) und anschließend die Binary ausführen.
Aber du kannst den Code natürlich vorher in dein Programm einbinden und diesen dann gleich mit kompilieren ^^
 
Ich hab ein Art umrechnungsprogramm gemacht. Und darin würde ich jetzt gern es so machen, das ein Benutzer selbst etwas definieren kann.

Ich könnte zwar jetzt den ganzen Code schreiben, und nur die Namen und die Umrechnung in eine Textdatei speichern.

Allerdings, wüsste ich noch nicht so ganz wie ich das machen solle.

Ich bräuchte ja eig. eine while schleife, denn er soll ja alle Textdateien einbeziehen, bis keine mehr im Ordner sind.
 
Du kannst eine Batch datei schreiben welche parameter enthaelt mit denen dann das Programm wieder aufgerufen wird.
Einziges Problem ist, dsa du es generisch halten musst.
Ansonsten benutze einfach eine Skriptsprache, das ist es naehmlich was sie so maechtig macht.
mfg

sw33t
 
wobei der entsprechende interpreter auf dem system gerbraucht wird. batch wäre da noch am ehesten geeignet. Such dir mal ein Computer Algebra System (CAS) und guck dir da ab wie die formeln verarbeitet werden.
 
oder du Implementierst eine einfache Scriptsprache, z.b. LUA, denn diese werden zur Laufzeit interpretiert.
 
Wenn ich das richtig verstanden habe, willst du, dass der Benutzer die Sprache selbst erweitern können soll?
Wie währe es, wenn du eine Art Interpreeter schreibst? Allerdings müsstest du alle C++ Komponenten, die später benutzt werden können, in das Interpreter System einbauen.
Dann kannst du ja ganz im C++ Stil als Benutzer Funktionen schreiben.
(Ich hoffe du verstehst mein wirres Gerede ^^)

Aber ein Interpreter ist viel Aufwand...
Prinzipiell kannst du auch einen ganzen C++ Interpreter schreiben, der das Programm interpretiert, statt zu kompilieren. Das wird aber noch schwieriger. :)
 
:D :D Ich werds mir in ein paar Monaten noch mal angucken. Lern noch nicht sehr lange C++.

Muss eine Funktion eig. immer einen Wert zutück geben?
Wenn ich kein return schreibe geht es nicht, und wenn ich return 0 schreibe, geht es auch nicht.
 
Das liegt ganz an der Funktionsdefinition.

Wenn du
Code:
int meineFunktion() { ... }
schreibst, erwartet der Compiler, dass deine Funktion auch einen int zurückgibt. Wenn du das nicht willst, musst du statt "int" "void" schreiben.

Liest du eigentlich ein Buch zu dem Thema? Ausprobieren ist zwar wichtig, aber so ganz ohne Anleitung wird das Ganze wohl sehr schwierig. ;)
 
Nein ich wühle mich bis jetzt nur durch Tutorials, habe allerdings auf jeden Fall vor mir ein Buch zu kaufen, kann mich nur noch nicht so ganz entscheiden, was für eins.

Denn ich lerne eigentlich schnell, und kann sehr zielstrebig sein, aber ich will doch nicht ein zu kompliziertes gleich am Anfang nehmen.
 
k ganz ueberlesen das du ein anfaenger bist.
Da ist es natuerlich zuviel verlangt sich noch ein Tut ueber skriptsprachen reinzuziehen, deswegen mal ein kleiner vorschlag, bezueglich Batch udn C++:
Breche das Programm soweit in einzelne Programme wie du kannst, und diese komelierst du dann halt zu eigenstaendigen exe-Dateien.
Beispiel Rechner:
(Mir klar das man das auch nur mit der Batch/Bash machen kann aber ist nur ein Beispiel)
du schreibst eine main-funktion welche die Eingabe vom benutzer annimmt,
noch weitere funktionen, wie z.b.
mult ->Multipliziert die Uebergebenen Parameter
div ->Dividiert die uebergebenen Parameter
plus -> addiert....
....
....
so, diese kompellierst du zu eigenstaendigen Programmen.
du legst sie alle in ein Verzeichniss und bindest diese in den Suchpfad ein
Dann wird die Main-funktion ausgefuehrt welche anhand der Benutzerangaben eine Batchdatei erstellt.
Beim ende wird die Batchdatei ausgefuehrt, welche dann die entsprechenden Parameter abarbeitet und an die einzelnen exe-dateien uebergibt.
Das ist zwar nichts halbes und nichts ganzes , kommt aber dem was du suchst verdammt nahe.

Oder:
Du machst es nur mit C++ mitteln und erstellst eine Klasse welche Anweisungen aus einem Queue abarbeitet welcher vorher von Benutzereingaben gefuellt wurde.
(Anm.:Die Dateien sollten aus der Klasse heraus auch aufrufbar sein,abe rdas wirst du wahrscheinlich auch noch sehen wenn du zu dem Kapitel kommst)
Ob du diesen Queue dann nur im Ram laesst oder ihn auch irgendwo zwischenspeicherst bleibt dann dir ueberlassen.
mfg

sw33t
 
Ich werd irgendwie nicht schlau daraus, was Du willst ;)
Falls die Formel fürs Umrechnen fest ist, wäre es das einfachste, nur die Parameter vom User zu lesen. Falls die Formel selbst berechnet werden muss, so kannst Du mal unter Programmieraufgaben nach "aus klein mach groß" schauen - da kommt nämlich ein Taschenrechner raus, der "normale" Terme akzeptiert (z.B 2*(3+5/3)) und sich mit etwas Aufwand soweit erweitern lässt, dass man auch mit Parametern rechnen kann. Allerdings sollte man da schon die Sprache etwas besser beherrschen. Eigene Scriptsprachenimplementierungen halte ich doch für etwas aufwändig - da gibts häufig vorgefertigte Lösungen ;)
 
Ich habe mir jetzt eine Art Notizprogramm geschrieben. Jetzt bin ich aber an dem Punkt angelangt, an dem ich Einzelne Notizn löschen will.

Wie stell ich das am besten an? Ich denke mal ich muss vorher die Zeilen irgendwie markieren, also z.B. so

-hallo
-ein test
-blablabla

Wie kann ich jetzt z.b. das 3. "-" und die dazugehörige Zeile löschen?
Oder sollte ich es vllt ganz anders machen?
 
musst du gar nicht, erstelle einfach eine neue Datei
und lasse einen Counter rueberlaufen.
Und bei der x-ten Zeile laesst du sie einfach aus, und zum schluss kopierst du alles wieder zurueck in die Originaldatei.
 
Hab ich jetzt leider noch nicht so ganz verstanden.
Und wie definier ich überhaupt die x-te Zeile?
Also wie erkennt er eine Zeile?
oder versteh ich grad alles falsch?
 
Wenn du die dritte Zeile löschen willst ist dein x=3 dh. wenn du durch die Zeilen gehst, und die Countervariable ==x ist, dann lässt du ebendiese Zeile raus.
 
Zurück
Oben