INI Dateien mit C bearbeiten
-
habe ein problem:
cfg() { int Auswahl; char buffer[20]; char buffer2[5]; int Funktion; printf("\t\t\t[>Config"); printf("\n\n"); printf("\t\t[> 01:Menuansicht aendern"); scanf("%i",&Auswahl); fflush(stdin); switch(Auswahl) { case 1: GetPrivateProfileString("GENERAL", "menu", "Default", buffer, sizeof(buffer), "C:\\c_cfg.ini"); printf("\n\tDerzeitig angezeigtes Menu: %c",buffer[0]); printf("\n\n\tNeue MenuID: "); scanf("%c",&buffer2[0]); fflush(stdin); WritePrivateProfileString("GENERAL", "menu", buffer2, "C:\\c_cfg.ini"); printf("\nErfolgreich geaendert"); break; } return 0; }
dies ist mein programm, dass in eine ini-datei schreib soll, nur wenn ich die öffne, sieht das ganze so aus:
[GENERAL] menu=1ÌÌÌÌÌÌÌ5ÌÌÌÌÌÌÌ1ÌÌÌÌÌÌÌ2 menu_max=2
d.h. alle eingaben wurden hintereinander geschrieben oder?...gibts einen befehl um den wert menu zu löschen bzw zu leeren?
-
Hallo,
das Ende von buffer wird bei WritePrivateProfileString nicht erkannt, deswegen steht Müll in der INI-Datei (scanf setzt bei "%c" kein terminierendes Null-Byte!). Einfache Änderung:
scanf("%s",buffer2);
Löschen des Eintrags "menu":
WritePrivateProfileString("GENERAL", "menu", NULL, "C:\\c_cfg.ini");
MfG
-
vielen dank für die schnelle hilfe