Problem mit Winexec und keine Lösung gefunden!
-
Achja, die Fehlermeldung vergessen:
'struct std::string' has no member named 'lenght'
-
Masus schrieb:
Achja, die Fehlermeldung vergessen:
'struct std::string' has no member named 'lenght'
#include <string>
-
ich bezweifel das in anderen foren eine eckige klammer in der pfadangabe war.
und naja englisch sollte man können.
length nicht ht sondern th.
und warum schreibst du buchstabenweise in die datei?
[EDIT]
@theta
hätte er die string.h nicht inkludiert, würde die fehlermeldung anderst lauten;-)@Masus
ich denke nicht das dein Info. lehrer verpeilt ist, eher bist du es....
[und noch ein Edit]
miti < inhalt.lenght();verlierst du den letzten karakter in deiner zeichenfolge. richtig wäre
i <= inhalt.lenght();
-
@LowFly:
Nix da string.h - nur string - die Header in C++ sind ohne Endung!.
-
LowFly schrieb:
[und noch ein Edit]
miti < inhalt.lenght();verlierst du den letzten karakter in deiner zeichenfolge. richtig wäre
i <= inhalt.lenght();Nein, Kleiner ist an der Stelle schon richtig - Arrays in C und C++ sind null-basiert, d.h. das letzte Element ist bei Index "Länge-1".
-
@CStoll
aber die länge einer zeichenfolge (ich weis das dies eine array ist) wird mir doch immer ohne die null terminierung zurück gegeben. siehe strlen()!oder hab ich da bisher was verpasst?
-
LowFly schrieb:
@CStoll
aber die länge einer zeichenfolge (ich weis das dies eine array ist) wird mir doch immer ohne die null terminierung zurück gegeben. siehe strlen()!oder hab ich da bisher was verpasst?
Ja, size() bzw. length() gibt die Anzahl Zeichen ohne Null- Terminierung zurück. In einem std::string ist aber
std::string s; char c = s[s.size()];nicht definiert. Es gibt ganz einfach keine Null- Terminierung.
Nur bei der Member- Funktion c_str() ist ein Null-Terminierter C-String garantiert.
-
Also, da ich bisher nichts verstanden habe, wovon alle gesprochen haben, ausser das ich mich total doof verschrieben habe!
Nun habe ich den blöden Tippfehler entfernt und es läuft, er ruft die entsprechende Datei nur eben nicht auf um sie zu ändern, Tipps?Quelldatei:
fstream datei;
string inhalt = "Der Inhalt für die Info-Datei!";datei.open("Info.txt", ios::out);
for(int i = 0; i < inhalt.length(); i++)
{
datei.write((char*)&inhalt[i], sizeof(char));
}datei.close();
}
-
fstream::open verlangt nach einer pfadangabe.
wenn du schreibst
datei.open("Info.txt", ...);MUSS die datei Info.txt im selben ordner liegen aus dem dein prog. gestartet wird.
wenn das nicht der fall ist, findet fstearm deine datei nicht. wenn deine datei die du öffnen willst in einem anderen ordner bzw. laufwerk liegt, must du die pfadangabe anpassen.
-
Ok,
habe nun nun einen Dateipfad angegeben, doch wenn ich nun die entsprechende Funktion ausführen will, tut sich nichts..Was muss ich noch ändern?
[/cpp]fstream datei;
string inhalt = "Der Inhalt für die Info-Datei!";datei.open("C:\\Users\\Max Hütten\\Desktop\\Minecraft\.minecraft\\Info.txt", ios::out);
for(int i = 0; i < inhalt.length(); i++)
{
datei.write((char*)&inhalt[i], sizeof(char));
}datei.close();
}
-
lies dir das mal bitte durch...
http://msdn.microsoft.com/en-us/library/aa651613
-
Gar keine Ahnung was du mir damit sagen willst!
Wie schon gesagt:
<----Keine Ahnung!!!
-
Gar keine Ahnung was du mir damit sagen willst!
das du selber mal dein gehirn anstrengen sollst.
programmieren heist nachdenken und nicht das handtuch schmeisen und sich alles vorkauen lassen.unter dem link steht alles was du brauchst um eine neue datei zu erstellen, aus einer datei zu lesen in sie zu schreiben, oder text in einer beschriebenen datei anzuhängen.
du willst in eine datei schreiben! öffnest aber die datei mit ios::out.
mehr anhaltspunkte gibts jetzt nicht mehr. wenn du jetzt nicht in der lage bist deinen fehler selber zu finden hast du pech gehabt.programmieren geht auch nicht ohne try & error. fals dir das was sagt. und wenn dein englisch nicht so gut ist, zieh nen übersetzer zu hilfe.