Geht das?
-
Kann man ein ganzen Quellcode als Textdatei speichern?
... void f(){ cout << "Hi" << endl; ... } int main(){ ofstream outfile; outfile.open("g.txt"); outfile << f() << endl; "C:\\"; outfile.close(); return 0; }
-
Schlechter Threadtitel. Bitte mach das so, daß der Leser vorher schon sieht, ob dein Problem in seine Interessenlagen fällt.
-
@Volkard
Ist das dein eigener Trollbot, dass du den so leben lässt und auch noch fütterst?Übrigens
volkard schrieb:
Welchen der beiden meinst Du?

Der war gut. Den wollte ich aber selbst noch bringen.
-
Also, falls du versuchst, den Quellcode der Funktion auf diese Art und weise auszugeben, funktioniert das nicht. Höchstens könnte man sich anzeigen lassen, wie die Funktion im RAM aussieht. Außerden hat die Funktion keinen Rückgabewert, der in die Textdatei geschrieben werden könnte, Also steht hinterher in der Textdatei nichts. Zwar wird die Funktion in zeile 9 aufgerufen und ausgeführt, allerdings hat dies keinen Einfluss auf das, was in die Textdatei geschrieben wird. Und was macht die leere Anweisung "C:\"; in Zeile 10? Die könntest du auch weglassen.
MfG, Jochen
-
Jochen S. schrieb:
Also, falls du versuchst, den Quellcode der Funktion auf diese Art und weise auszugeben, funktioniert das nicht. Höchstens könnte man sich anzeigen lassen, wie die Funktion im RAM aussieht. Außerden hat die Funktion keinen Rückgabewert, der in die Textdatei geschrieben werden könnte, Also steht hinterher in der Textdatei nichts. Zwar wird die Funktion in zeile 9 aufgerufen und ausgeführt, allerdings hat dies keinen Einfluss auf das, was in die Textdatei geschrieben wird. Und was macht die leere Anweisung "C:\"; in Zeile 10? Die könntest du auch weglassen.
MfG, Jochen
Ich hoffe doch dass dem nicht so ist, zumindest mein Compiler (GCC 4.4.keineAhnung) meckert den Code an. ofstream hat leider keine Operatorüberladung um "nichts" in eine Datei zu schreiben.
-
Jochen S. schrieb:
Also, falls du versuchst, den Quellcode der Funktion auf diese Art und weise auszugeben, funktioniert das nicht. Höchstens könnte man sich anzeigen lassen, wie die Funktion im RAM aussieht. Außerden hat die Funktion keinen Rückgabewert, der in die Textdatei geschrieben werden könnte, Also steht hinterher in der Textdatei nichts. Zwar wird die Funktion in zeile 9 aufgerufen und ausgeführt, allerdings hat dies keinen Einfluss auf das, was in die Textdatei geschrieben wird. Und was macht die leere Anweisung "C:\"; in Zeile 10? Die könntest du auch weglassen.
MfG, Jochen
Genau. @OP: Was du möchtest ist Reflection, ein Konzept das seit den 80-ern bekannt und seit noch längerem in LISP implementiert ist. C++ kann keine nennenswerte Reflection. Probier es zum Beispiel mit LISP oder Python.
-
Jochen S. schrieb:
Und was macht die leere Anweisung "C:\"; in Zeile 10? Die könntest du auch weglassen.
MfG, Jochen
Sie fürt aus, wo die Textdatei gespeichert wird.
Blub² schrieb:
Ich hoffe doch dass dem nicht so ist, zumindest mein Compiler (GCC 4.4.keineAhnung) meckert den Code an. ofstream hat leider keine Operatorüberladung um "nichts" in eine Datei zu schreiben.
Lade dir Dev C++ runter oder du hast fstream net geincludet.
-
Jetzt wird's unterirdisch. Ich lasse sebastianfox mal besser zur Ruhe kommen, damit er Zeit für die neuen Bücher hat.