C++ Programm (XP, Eclipse, cygwin) soll Notepad-Fenster mit Datei öffnen

smileWay

Grünschnabel
Hallo,

folgendes habe ich vor: eine *.dat-Datei, nennen wir sie file.dat, soll am Ende des C++-Programms mit Notepad (oder einem anderen Editor) geöffnet werden.

Meine Konfiguration ist Eclipse als Entwicklungsumgebung, MS Windows XP als Betriebssystem und cygwin als Compiler.

Was muss ich dazu als Code eingeben? Habe schon mal was von CreateProcess() gehört, aber das habe ich irgendwie nicht hinbekommen... wie funktioniert sowas?

Vielen Dank schon einmal für Eure Hilfe :)
 
Create Process könntest Du da zwar verwenden, wäre aber etwas oversized.
Das sollte schon mit system(...) gehen:
Code:
system("C:\WINDOWS\NOTEPAD.exe file.dat");
 
Ups, es gibt doch noch ein Problem:
Bevor die Datei durch den oben genannten Code geöffnet wird, soll noch ganz normal durch "printf(..)" etwas ausgegeben werden, z.B. "Tschüss".

Sobald aber das Fenster mit der Datei file.dat geöffnet wurde, stoppt der durch "printf" erzeugte output und das "Tschüss" erscheint erst, nachdem man das Notepad-Fenster wieder geschlossen hat.

Kann man daran noch irgendwas ändern? Also das Tschüss ganz normal ausgeben lassen, obwohl das Fenster noch geöffnet ist?

Nochmal vielen Dank :)
 
smileWay hat gesagt.:
Mein Compiler macht es nur mit Slash (/) statt Backslash (\), aber sonst funktioniert das perfekt

Backslash musst du auch als "\\" schreiben

smileWay hat gesagt.:
Kann man daran noch irgendwas ändern? Also das Tschüss ganz normal ausgeben lassen, obwohl das Fenster noch geöffnet ist?

gibs doch einfach vor dem system Befehl aus.
Wenn nicht, wirst du im CreateProcess nich rumkommen.
 
Hi Flegmon,
danke für deine Antwort:

Flegmon hat gesagt.:
Backslash musst du auch als "\\" schreiben

ok, das werde ich mir merken :)


Flegmon hat gesagt.:
gibs doch einfach vor dem system Befehl aus.
Wenn nicht, wirst du im CreateProcess nich rumkommen.

Das habe ich die ganze Zeit schon versucht, aber trotzdem wird das Fenster vorher geöffnet. :( Die Datei wird anscheinend schneller geöffnet, als die Ausgabe erfolgen kann.

Wie würde das denn mit dem CreateProcess() funktionieren?

Merci :)
 
Hi deepthroat!
Sorry, hatte deine Antwort zu spät bemerkt. Aber dein

deepthroat hat gesagt.:
C:
fflush(stdout);
direkt nach dem printf sollte es auch tun.

funktioniert! Wunderbar :-)

Und jetzt noch eine letzte Frage - ich weiß, das ist schwierig mit mir...

Kann man das C++-Programm nach dem ausgeben des "Tschüss" (das funktioniert) und dem Öffnen der Datei (funktioniert auch) dazu bringen, sich zu schließen?

Bisher läuft es nämlich so lange weiter, bis man das Notepad-Fenster schließt. Das C++-Programm brauche ich dann aber eigentlich nicht mehr.

Merci schon mal :)
 
Zurück