Wie kann ich eine bestimmte atei im betimmten Verzeichnis öffnen?
-
filename muss einfach nur den kompletten Pfad enthalten:
string filename = "C:\\Windows\\Meinedatei.txt";
Aber warum willst du denn die Datei mit system öffnen?
Ich würde für sowas ifstream nehmen:#include <iostream> #include <fstream> #include <string> using namespace std; int main() { char c; string filename = "C:\\Windows\\MeineDatei.txt"; ifstream dat_ein; dat_ein.open(filename.c_str(),ios_base::in); if(dat_ein) while(true) { dat_ein.get(c); if(dat_ein.eof())break; cout << c; } dat_ein.close(); return 0; }MfG, Jochen
-
@Tim06TR öffnet immer noch im gleichem Verzeichnis.
-
Jochen S. schrieb:
filename muss einfach nur den kompletten Pfad enthalten:
string filename = "C:\\Windows\\Meinedatei.txt";
Aber warum willst du denn die Datei mit system öffnen?
Ich würde für sowas ifstream nehmen:#include <iostream> #include <fstream> #include <string> using namespace std; int main() { char c; string filename = "C:\\Windows\\MeineDatei.txt"; ifstream dat_ein; dat_ein.open(filename.c_str(),ios_base::in); if(dat_ein) while(true) { dat_ein.get(c); if(dat_ein.eof())break; cout << c; } dat_ein.close(); return 0; }MfG, Jochen
1&2.Weil man mit system einfacher EXE dateien öffnen kann. Dein Code öffnet "leider" nur eine .txt Datei. Ich möchte aber eine .exe Datei öffnen. Und mit Eingabe!Ich meine, dass wenn ich trotzdem system("cd c:\"") eingebe, immernoch im gleichem Verzeichnis öffnet, wo die hauptdatei sich befinden!
-
Gut, ich dachte, dass du eine Datei öffnen willst und den Inhalt anzeigen willst.
Ansonsten würde ich auch ShellExecute nahmen. Und wieso kannst du mit dem Code von Tim06TR keine Beliebigen Exe-Datein öffen? Bei mir klappt es:ShellExecute(NULL, NULL, "C:\\MeinVerzeichenis\\Programm.exe", NULL, NULL, SW_SHOWNORMAL);
-
Dieser Thread wurde von Moderator/in pumuckl aus dem Forum C++ in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Jochen S. schrieb:
Gut, ich dachte, dass du eine Datei öffnen willst und den Inhalt anzeigen willst.
Ansonsten würde ich auch ShellExecute nahmen. Und wieso kannst du mit dem Code von Tim06TR keine Beliebigen Exe-Datein öffen? Bei mir klappt es:ShellExecute(NULL, NULL, "C:\\MeinVerzeichenis\\Programm.exe", NULL, NULL, SW_SHOWNORMAL);Ich möchte es aber mit Eingabe machen. Ich habe einen Code versucht und schon wieder: Es öffnet wieder im selben Verzeichnis!
#include <iostream> #include <string> #include <windows.h> using namespace std; int main() { string d; cin >> d; d += ".exe"; ShellExecute(NULL, NULL, "C:\\", NULL, NULL, SW_SHOWNORMAL); system(d.c_str()); return 0;Was habe ich da falsch gemacht?
-
Der ShellExecute-Aufruf muss so aussehen:
ShellExecute(NULL, NULL, d.c_str(), NULL, NULL, SW_SHOWNORMAL);Der System-Aufruf muss da ganz weg.
Und bei der Eingabe keine Backslashes verwenden.
Du musst natürlich den ganzen Pfad eingeben.PS: Du solltest dir wiklich mal die Grundlagen aneignen.
-
WAS MEINST DU MIT GRUNDLAGEN?? IMMER GRUNDLAGEN...Ich kann doch die Grundlagen!!!!Aber nicht die Fortgeschrittene Grundlagen(Ich bin so Halb-Fortgeschritten)
-
Immer noch nicht...."gähn"

#include <iostream> #include <string> #include <windows.h> using namespace std; int main() { string d; cin >> d; d += ".exe"; "C:\\"; ShellExecute(NULL, NULL, d.c_str(), NULL, NULL, SW_SHOWNORMAL); return 0; }Was habe Ich da Falsch gemacht. Der kompiliert alles, keine Fehler, aber dann das! Noch schlimmer: es öffnet garkeine Datei!
PS:
"C:\" ist der Pfad. Aber die \ müssten da sein, sonst wäre ja unmöglich gewesen, den Pfad zu finden!
-
1. Du kannst KEINE Grundlagen. (siehe Zeile 11)
2. Dass er keine Datei Öffnet, wundert mich micht.So sieht der Code richtig aus:
#include <iostream> #include <string> #include <windows.h> using namespace std; int main() { string d; cin >> d; d = "C:\\"+d+".exe"; ShellExecute(NULL, NULL, d.c_str(), NULL, NULL, SW_SHOWNORMAL); return 0; }
-
Okay, vielleicht nur die baby Grundlagen. Mein erstes C++ Buch war:
easy C++ von MartUndTechnik.
-
Das öffnet schon, aber nicht im gleichem Fenster!
-
Aber mit system() öffnet es im gleichem Fenster!
-
Wenn du das im gleichen Fenster haben willst, musst du das so schreiben:
#include <iostream> #include <string> #include <windows.h> using namespace std; int main() { string d; cin >> d; d = "call C:\\"+d+".exe"; system(d.c_str()); return 0; }
-
Das weiß ich schon, aber ich habe eine andere Frage:
Wie kann ich die Dateien von einem Ordner auflisten, die was aber nicht im gleichen Verzeichnis liegen.Also:... system("cd c:\""); system("dir c:"); cout << endl; ...Funktioniert nicht. Warum?
-
hab gelöst:
.. system("dir cd c:\"); ...
-
sebastianfox schrieb:
hab gelöst:
.. system("dir cd c:\"); ...Dir fehlt es aber scheinbar an jeder Grundlage, wenn ich mir diesen Code ansehe.

-
Was meinste damit?
-
geh und friss was giftiges
-
Wieso sollte ich mich vergiften? Ich kapituliere...
Einfach nur Cyber-Mobbing...
