Code: Alles auswählen
WritePrivateProfileString(Überschrift, Attribut, Attributwert, Pfad);
Code: Alles auswählen
WritePrivateProfileString(Überschrift, Attribut, Attributwert, Pfad);
Das kommt drauf an, welche Art String Du hast...? Du schreibst in C++, also gehe ich erstmal von std::string aus, da wäre es myString.c_str().naums hat geschrieben:Um den Windows Befehl fürs schreiben von INIs nutzen zu können, müssen 4 Parameter angegebn werden:
Überschrift Attribut und Attribuwert Müssen CHAR sein. Leider speichere ich die Attributwerte innerhalb des Programms aus Gründen der Einfachheit als STRING. Wie konvertiere ich nun String zu einem Array von char?Code: Alles auswählen
WritePrivateProfileString(Überschrift, Attribut, Attributwert, Pfad);
So bekommst du dein char* aus einem std::string.c_str() (welcher const char* zurückgibt)C++ Quellcode hat geschrieben: std::string a;
a = "abc";
char *p = cons_cast<char *>(a.c_str());
Also den const_cast würde ich hier auf keinen Fall verwenden. Es hat schon seine Gründe warum ein const char* und kein char* zurückgegeben wird. Weil durch das fehlende const kann man den String verändern ohne dass das der Kompiler verbietet und string vertraut aber darauf das der Inhalt nicht verändert wird, was dann leicht böse enden kann.Jside hat geschrieben:char *p = cons_cast<char *>(a.c_str());
Stimmt auch wieder, aber wenn man aufpasst...(wobei das hier ja nicht der Fall sein kann) better safe than sorry...Kerli hat geschrieben:Also den const_cast würde ich hier auf keinen Fall verwenden. Es hat schon seine Gründe warum ein const char* und kein char* zurückgegeben wird. Weil durch das fehlende const kann man den String verändern ohne dass das der Kompiler verbietet und string vertraut aber darauf das der Inhalt nicht verändert wird, was dann leicht böse enden kann.Jside hat geschrieben:char *p = cons_cast<char *>(a.c_str());
C++ Quellcode hat geschrieben: int i;
std::string a;
a = "abc";
char p[a.length()];
for(i = 0; i < a.length(); i++) {
p = a;
}
p[i++] = '\0'; //String Terminieren(WICHTIG!)
Bitte nie auf etwas aufpassen wollen, was der Compiler das garantieren kann.Jside hat geschrieben:Stimmt auch wieder, aber wenn man aufpasst...(wobei das hier ja nicht der Fall sein kann) better safe than sorry...Kerli hat geschrieben:Also den const_cast würde ich hier auf keinen Fall verwenden. Es hat schon seine Gründe warum ein const char* und kein char* zurückgegeben wird. Weil durch das fehlende const kann man den String verändern ohne dass das der Kompiler verbietet und string vertraut aber darauf das der Inhalt nicht verändert wird, was dann leicht böse enden kann.Jside hat geschrieben:char *p = cons_cast<char *>(a.c_str());
Hat wer Schnupfen oder warum verstehe ich das jetzt nicht???naums hat geschrieben:Gesundheit???
Bisher nervst du mich nicht, es ist schließlich auch ein Einsteigerforum. Aaaber, mir scheint, Dir fehlen reichlich Grundkenntnisse. Was nutzt es Dir, wenn Du std::string kennst, aber offenbar nicht weißt, dass mannaums hat geschrieben:äh. Ich wei durchaus dass ich nervig bin, und C++ ist ein bissl komisch. weil Keine Methode mit Strings arbeitet außer std::cout/cin, soweit ich das benutzt habe. Also mal einen eindeutigen Weg mit Kommentaren, was was is, und wo meine std::string variable hin muss, und was dann genau ausgegebn wird. Zum Bleistift Fopen arbeitet mit cont char* also am besten einen algorithmus zum konvertieren zu cont char*. - for dummies. danke ^^
Code: Alles auswählen
char const * cString = "Hallo Welt";
std::string stdString = std::string( cString );
char const * anotherCString = stdString.c_str();