Pfad zur Datei mit getenv in Variable schreiben (C++)
-
Guten Morgen,
Ich habe ein Problem beim Kombinieren eines Pfades und einer Datei in C++.
Das Ganze sollte am Ende so aussehen: C:\Dokumente und Einstellungen\User\Lokale Einstellungen\Temp\config_datei.txt
Und unter *nix: /home/User/.config/config_datei.txt
Zum Realisieren benutze ich getenv() aus cstdlib.Das Programm ist unterteilt in prog.cpp und variables.hpp. Wie man sich jetzt denken kann, stehen in der variables.cpp alle Einstellungen und Variablen.
So lange ich alles schön brav in die main-Funtkion schreibe, gibt's vom Compiler auch nichts zu meckern. Aber wenn ich den Pfad zur Datei in einer globalen Variable speichern möchte, so ernte ich Fehlermeldung, dass Konvertierungen im Kontext nicht möglich sind.Und nun zum Quelltext, wie er unter Windows aussehen sollte, wobei ich aber Fehlermeldungen bekomme:
variables.hpp
#include <cstdlib> char *_path = "temp"; char *path = getenv(_path); char filename[] = "config_datei.txt"; char fullpath[256]; strcat(fullpath, path); strcat(fullpath, "\\"); strcat(fullpath, filename);prog.cpp
#include <iostream> #include "variables.hpp" int main() { std::cout << fullpath << std::endl; return 0; }Was allerdings funktioniert, ist, wenn ich die variables.hpp weglasse und dafür die Variablen in die main-Funktion von prog.cpp packe.
prog.cpp
#include <iostream> #include <cstdlib> int main() { char *_path = "temp"; char *path = getenv(_path); char filename[] = "config_datei.txt"; char fullpath[256]; strcat(fullpath, path); strcat(fullpath, "\\"); strcat(fullpath, filename); std::cout << fullpath << std::endl; return 0; }Ich bedanke mich schon vorab für eure Hilfe!
MfG
gnunase
-
du darfst außerhalb von main keine funktionen aufrufen (außer ctor)
-
Weiß denn niemand weiter?
-
gnunase schrieb:
Weiß denn niemand weiter?
lol? dir wurde doch geantwortet.
-
gnunase schrieb:
Weiß denn niemand weiter?
Wer lesen kann ist klar im Vorteil:
aQR schrieb:
du darfst außerhalb von main keine funktionen aufrufen (außer ctor)
-
Gibts auch ne Möglichkeit, dass ich die oben genannten Variablen global speichern kann? Ein Beispiel wäre ganz nett..
-
gnunase schrieb:
Gibts auch ne Möglichkeit, dass ich die oben genannten Variablen global speichern kann? Ein Beispiel wäre ganz nett..
Schreib doch einfach eine Factory, die den Namen beim ersten Aufruf mittels getenv() ermittelt und sich merkt (statische variable in der Funktion).
-
pumuckl schrieb:
gnunase schrieb:
Gibts auch ne Möglichkeit, dass ich die oben genannten Variablen global speichern kann? Ein Beispiel wäre ganz nett..
Schreib doch einfach eine Factory, die den Namen beim ersten Aufruf mittels getenv() ermittelt und sich merkt (statische variable in der Funktion).
Hätteste mal n Beispiel?

Bin bisschen neu in C++...
Wär echt nett von dir.
-
Hast du denn schonmal nach dem Factory-Pattern geschaut? Damit solltest dus eigentlich selbst ganz gut hinkriegen.
-
pumuckl schrieb:
Hast du denn schonmal nach dem Factory-Pattern geschaut? Damit solltest dus eigentlich selbst ganz gut hinkriegen.
Kann ich machen. Haste mal ein Beispiel?
-
bissu ein troll oder so?
-
gnunase schrieb:
Kann ich machen. Haste mal ein Beispiel?
Lies dir al den Thread "Du brauhcst Hilfe?" durch - ist sticky.
Danach zeig uns was du schon hast. Und danach wird dir auch weitergeholfen.