[gelöst! THX!!!]file.txt nach autostart beschreiben?
-
Hallo,
Ich bin relativ neu in C++ und hab schon öfter in diesem Forum Antworten gefunden. Bin mir relativ sicher, dass diese Frage hier nocht nicht gestellt wurde. Wenn doch sorry...Also:
Ich habe ein Programm, welches sich beim Hochfahren selbst aktiviert. Die Berechnungen funktionieren jedoch nur in der Console.
Die errechneten Ergebnisse stehen in der Console, werden jedoch nicht in die file.txt geschrieben.
Dies funktioniert jedoch wenn ich meine Programm.exe per Maus öffne.Ich benutze Dev C++ 4.9.9.2 in Windows XP (glaub ich).
Danke im vorraus für alle Antworten!!!//////////////////////////////////////////////////////////////////////////
////////////// Mein Code ist folgender: //////////////
//////////////////////////////////////////////////////////////////////////#include<iostream>
#include<windows.h>
#include<winable.h>
#include<fstream>using namespace std;
void autostart()
{
BYTE pfad[] = "Laufwerk:\\Pfad\\Programm.exe";
HKEY hkey;
RegCreateKeyEx(HKEY_CURRENT_USER,
"Software\\Microsoft\\Windows\\CurrentVersion\\Run",
0, 0, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hkey, 0);
RegSetValueEx(hkey, "key", 0, REG_SZ, pfad, sizeof(pfad));
RegCloseKey(hkey);
};void abschreiben()
{
ofstream file;
int length = 10;
int a[length];for(int i = 0; i < length; i++) // array beschrieben mit 10 Zahlen
{a[i] = i;}for(int i = 0; i < length; i++)
{file.open("output.txt", ios::app);
file << a[i]; // file wird mit array beschrieben
cout << a[i];
file.close();}
};int main()
{
autostart();
abschreiben();
system("PAUSE");
return 0;
}
-
Dein Programm gibt die Zeichen korrekt in eine Datei aus (welche übrigens output.txt heißt, nicht file.txt).
Abgesehen davon solltest du dich trotzdem unbedingt noch einmal mit Ein-/Ausgabe von Dateien beschäftigen. Das was du gemacht hast, ist umständlich und deutet darauf hin, dass du einiges nicht richtig verstanden hast.
-
Bei einem Neustart funktioniert es bei mir nicht. Nur per Maus...
(ja output... stimmt. Hatte es nur schnell überflogen)
Aber es wäre so korrekt?
Woran könnte es liegen, dass es nach mehrfachen Tests bei mir nicht in die file schreibt?
Und wie würde es einfacher gehen? Hatte es so gelernt.
Vielen Dank für schnelle antwort.
-
du öffnest die datei ein bisschen zu oft?
such mal nach der datei, wahrscheinlich existiert sie nicht dort, wo du sie vermutest.
-
open n00b schrieb:
du öffnest die datei ein bisschen zu oft?
such mal nach der datei, wahrscheinlich existiert sie nicht dort, wo du sie vermutest.Ja in dem Fall öffne ich die Datei zu oft. Ich habe nur das Programm auf das Nötigste abgespeckt, damit man es schneller versteht. Für mein Programm ist es wichtig (denke ich jedenfalls
).
Die Datei muss da sein, wo ich sie vermute, denn wenn ich das Programm per Mausklick starte, funktioniert es einwandfrei.
Wie gesagt im "Autostart" funktioniert nur das 'Output.exe' beschreiben nicht.
Console schon...Funktionert es vielleicht bei jemand anderen noch?
Sonst liegt der Fehler vielleicht irgendwo an meinem PC oder so...
-
ComputerCarl schrieb:
).
Die Datei muss da sein, wo ich sie vermute, denn wenn ich das Programm per Mausklick starte, funktioniert es einwandfrei.Hier liegt wahrscheinlich das Problem. Es gibt ja so etwas wie ein Arbeitsverzeichnis und das ist womöglich unterschiedlich je nach Startmethode. Da deine Datei relative Pfadangaben verwendet, vermute ich mal, dass die Ausgabe in einem anderen Verzeichnis landet als du erwartest.
-
Oh...
Stimmt ich hab meine Output.txt bei "Dokumente und Einstellungen\Administrator"
gefunden. Ich weiss zwar nicht ganz warum und leider auch nicht was relative Pfadangaben sind (kleine indirekte Frage
)
Aber schon mal vielen Dank an alle.
Ich hatte wohl vorher nicht ganz verstanden, was gemeint wurde.
-
ComputerCarl schrieb:
Oh...
Stimmt ich hab meine Output.txt bei "Dokumente und Einstellungen\Administrator"
gefunden. Ich weiss zwar nicht ganz warum und leider auch nicht was relative Pfadangaben sind (kleine indirekte Frage
)