Roki Opublikowano 2 Kwietnia 2012 Opublikowano 2 Kwietnia 2012 Jak stworzyć INI w C++? :L Próbuję zapisać do INI string, ale nie tworzy go samemu :/ string s = "[Player]"; s += name; s += ".ini"; // name to char* WritePrivateProfileString("UserData", "Pass", pass, s.c_str());
Makary155 Opublikowano 3 Kwietnia 2012 Opublikowano 3 Kwietnia 2012 Otwórz plik w trybie do zapisu a utworzy ci plik(tutaj IOstream) string s=[Player]"; s += name; s += ".ini"; ofstream file (s); file.close(); tak btw, co to za biblioteka którą używasz? (WritePrivateProfileString)
Roki Opublikowano 3 Kwietnia 2012 Autor Opublikowano 3 Kwietnia 2012 Wywala mi "incoplete type is not allowed" :/ Biblioteka to windows.h ;p
Roki Opublikowano 10 Kwietnia 2012 Autor Opublikowano 10 Kwietnia 2012 Odświeżam. Zaincludowałem <fstream> bodajże i nie ma błędu, ale plik dalej się nie tworzy :( @EDIT: Działa, robiło plik z "*", ale zastanawia mnie dlaczego ten kod: case 2: // Registering { char* name = readstring(0); cout << name; char* pass = readstring(0); cout << pass; string s = ".\\[Player]"; s += name; s += ".ini"; cout << s; break; } Wywala na ekranie takie coś: Login***.\[Player]***.ini ? Tak jak by podmieniał name na pass, przy inicjowaniu zmiennej s :o
Will Opublikowano 10 Kwietnia 2012 Opublikowano 10 Kwietnia 2012 Przyjrzyj się dokładnie funkcji: readstring albo podaj jej body.
ediepl Opublikowano 10 Kwietnia 2012 Opublikowano 10 Kwietnia 2012 Jeśli się nie mylę to funkcja readstring pochodzi z 39dll, więc może wysyłasz je na odwrót, albo kod wykonuje się na odwrót(lol), spróbuj: case 2: // Registering { char* name = readstring(0); cout << name; char* pass = readstring(0); cout << pass; string s = ".\\[Player]"+name+".ini"; cout << s; break; }
Roki Opublikowano 10 Kwietnia 2012 Autor Opublikowano 10 Kwietnia 2012 Problem już rozwiązałem, tworzę s zaraz po odebraniu name i działa. Dane wysyłają się poprawnie. Odpowiednio wchodzi w case, więc od tyłu nie czyta. readstring() pochodzi z 39DLL: char* CBuffer::readstring() { int i; for(i = readpos; i < count; i++) { if(data[i] == '\0') break; } if(i == count)return NULL; i-=readpos; i = min(20000, i); StreamRead(&retval, i+1); return retval; }
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się