Kommandozeilenparameter übergeben
-
Eigentlich sollte er - hast du das Programm mal durch den Debugger gejagt? (btw, und übergibst du überhaupt gültige Dateinamen?)
-
hi

ja debugt hab ich es, keine Fehler o.ä. - dennoch
inwiefern gültige Dateinamen?

-
Dann baust Du Ausgaben ein, damit Du mitbekommst ob das Programm frühzeitig beendet oder komplett durchläuft.
#include <iostream> #include <fstream> using namespace std; int main(int argc, char** argv) { if (argc != 3) { cout << "Fehler: zu wenige Parameter übergeben!" << endl; return EXIT_FAILURE; } ifstream in(argv[1]); ofstream out(argv[2]); if (!in.is_open()) { cout << "Fehler: konnte die Datei '" << argv[1] << "' nicht zum lesen öffnen!" << endl; return EXIT_FAILURE; } if (!out.is_open()) { cout << "Fehler: konnte die Datei '" << argv[2] << "' nicht zum schreiben öffnen!" << endl; } out << in.rdbuf(); out.close(); cout << "Verarbeitung abgeschlossen!" << endl; return EXIT_SUCCESS; }
-
Du willst mir doch wohl nicht sagen, dass deine Datei immer auf "C:\" liegt und immer den gleichen Namen (also einen namen ohne leerzeichen ist) hat.
Weiters versteh ich überhaupt nicht wieso ihr alle so alte Befehle verwendet.
Du möchtest z.b dein Problem mit dem uralten "FILEPOINTER" lösen (der übrigens auch nur ein Stream ist).Alles im Zusammenhang mit Nulltermierten Strings (char
oder Char Arrays ist umständlich.
Warum verwendet ihr nicht einfach AnsiString's (zu finden in der "dstring.h"). Das ist eine tolle Klasse die alle Features von char * oder char[] oder auch Widestrings beinhaltet. Das geht alles RuckZuck und easy.Wenn ich du wäre würde ich versuchen zum laden von Dateien die Klasse "TStringList" verwenden.

Natürlich kann ich auch volle irren und ihr habt die von mir erwähnten Klassen gar nicht. Ich als Borland C++ Programmierer verwende jedenfalls nur diese tollen "Hilfen"

-
Ich als Borland C++ Programmierer
MÖP! Da ist dein Problem

#include <iostream> #include <fstream> int main(int argc, char** argv) { if (argc != 3) { std::cout << "FEHLER: Zu wenige Parameter übergeben!\n" << argv[0] << " [input] [output]" << std::endl; return 1; } std::ifstream in(argv[1]); std::ofstream out(argv[2]); if (!in) { std::cout << "FEHLER: Die Datei\"" << argv[1] << "\" konnte nicht zum Lesen geöffnen werden!" << std::endl; return 2; } if (!out) { std::cout << "FEHLER: Die Datei Datei \"" << argv[2] << "\" konnte nicht zum Schreiben geöffnet werden!" << std::endl; return 3; } out << in.rdbuf(); std::cout << "Dateiinhalt kopiert!" << std::endl; }Funktioniert problemlos ...
my_programm.exe "C:\Programme\Test\Test.exe" "C:\Test.txt"
-
Das Programm läuft mittlerweile - und das problemlos.

Danke an alle!!!!!!

Thema kann geclosed werden
