Roki Opublikowano 2 Kwietnia 2012 Udostępnij 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()); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Makary155 Opublikowano 3 Kwietnia 2012 Udostępnij 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) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Roki Opublikowano 3 Kwietnia 2012 Autor Udostępnij Opublikowano 3 Kwietnia 2012 Wywala mi "incoplete type is not allowed" :/ Biblioteka to windows.h ;p Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Makary155 Opublikowano 3 Kwietnia 2012 Udostępnij Opublikowano 3 Kwietnia 2012 Zaincludowałeś <iostream> ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Roki Opublikowano 4 Kwietnia 2012 Autor Udostępnij Opublikowano 4 Kwietnia 2012 Tak. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Roki Opublikowano 10 Kwietnia 2012 Autor Udostępnij 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 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Will Opublikowano 10 Kwietnia 2012 Udostępnij Opublikowano 10 Kwietnia 2012 Przyjrzyj się dokładnie funkcji: readstring albo podaj jej body. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 10 Kwietnia 2012 Udostępnij 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; } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Roki Opublikowano 10 Kwietnia 2012 Autor Udostępnij 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; } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
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ę