c++ datei i/o versagt? óÒ
-
heyhey~
mit allem außer mozilla (da es anonymous passwörter überschreibt) kommt ihr fast immer auf ftp://anonymous:yay@antroid.game-host.org/ ...
in der zip dort ist ein teilprojekt (im dev-cpp format.. sorry), die konsole. diese soll jetzt mal das konfigurationen-lesen lernen... aber hey, warum machen es die c++ streams nicht mit!?
die eine funktion, die das problem macht, heißt RBR_LoadConfig (in system.cpp). die soll ne konfiguration laden.... und wenn es weder >file< noch "rbr.ini" gibt, soll die standard-rbr.ini geschrieben werden (wie man in der cpp sieht is die funktion noch nicht vollständig). lesen kann die funktion noch nicht. und mit dem schreiben gibt es schon probleme.ich hoffe mal hier bekomm ich nen rat... ^^'
edit: auf suse linux und windows xp getestet - auf beiden das selbe problem.
-
Ich bin zu faul mir das zu laden und weiss auch nicht was das mit Spiele/Grafik zu tun haben soll. Also mach doch einfach die Fehler aus dem Code.
Bye, TGGC
-
habs ma hier reingeschrieben weils sdl braucht ... mehr oder weniger. wenn man paar zeilen ändert isses aber dann tatsächlich sdl unabhängig.
der code hat keine syntaxfehler. und einfach ists mir nich gegangen. den 3 andren dies versucht haben auch. -_______-'yay, ich versuchs vielleicht ma in ner andren kategorie, ansonsten danke un so...
-
AntiANTROID schrieb:
heyhey~
mit allem außer mozilla (da es anonymous passwörter überschreibt) kommt ihr fast immer auf ftp://anonymous:yay@antroid.game-host.org/ ...
in der zip dort ist ein teilprojekt (im dev-cpp format.. sorry), die konsole. diese soll jetzt mal das konfigurationen-lesen lernen... aber hey, warum machen es die c++ streams nicht mit!?
die eine funktion, die das problem macht, heißt RBR_LoadConfig (in system.cpp). die soll ne konfiguration laden.... und wenn es weder >file< noch "rbr.ini" gibt, soll die standard-rbr.ini geschrieben werden (wie man in der cpp sieht is die funktion noch nicht vollständig). lesen kann die funktion noch nicht. und mit dem schreiben gibt es schon probleme.a) bitte beschreib dein Problem genauer
b) komm ich mit Mozilla (bzw. Firefox) problemlos an das File.
-
ach ich poste mal am besten die funktion.
#define RBR_USUAL_INI "hier kommt der inhalt der standard-ini hin." char RBR_LoadConfig(RBR_Config *config,char *file) { char status = 0; std::fstream stream; char tempchar; stream.open(file,std::ios::in); if (!stream.is_open()) { stream.close(); stream.open("rbr.ini",std::ios::in); status = 1; }; if (!stream.is_open()) { stream.close(); stream.open("rbr.ini",std::ios::out); if (!stream.is_open()) return (2); stream << RBR_USUAL_INI << endl; stream.close(); stream.open("rbr.ini",std::ios::in); }; if (!stream.is_open()) return (2); stream.close(); return status; };okay... die zeile, die nicht tut was sie soll ist die hier:
stream << RBR_USUAL_INI << endl;
-
Dann ändere die Zeile so, das sie es tut.
Bye, TGGC
-
sag mir in was ich zu ändern hab.. -
bzw warum sie nich tut was sie soll.
-
Vermutlich tut sie genau, was sie tun soll. Nur du willst was anderes.
Bye, TGGC
-
was würdest du denn schätzem, macht die zeile?
und was meinst du würde ich von ihr anderes wollen? ^^'
-
*lol*
Willst du hier etwas? Ich denke schon. Dann koennte man (spaetestens, wenn man direkt darauf angesprochen wird) schon mal eine detailiertere Fehlerbeschreibung herausruecken...Als erstes würde ich mich von dem Makro trennen und dieses durch einen konstanten String ersetzen.
Ausserdem solltest du vor jedem erneuten Oeffnen des Strings alle Flags zuruecksetzen (.clear()).Und so richtig logisch ist der Code auch nicht oder?
if (!stream.is_open()) // wenn stream nicht offen ist { stream.close(); // stream schliessenGruss,
DeSoVoDaMu
-
ah~ yay, hab statt .clear() .close() benutzt. nu gehts, dange. ;3