Jak zamienić integer na tablicę znaków?

0

Witam.
Mam taki kod.
Dawałem na początku &str_ll[0] ,potem dodałem wskaźnik, to jest ostatnia wersja

111111.jpg wynik jest taki a chciałbym uzyskać liczbę.

int cxScreen, cyScreen;
cxScreen = GetSystemMetrics(SM_CXSCREEN);
char str_ll[20];
char* j;
j = &str_ll[0];
IntToChar(cxScreen,j);
    SetWindowTextA(hText,j);
5

@johnny_Be_good:

jesteś pewien, że przed zrobieniem gry nie potrzebujesz poznać podstaw ?

0

@ZrobieDobrze: czy ja nie pytam o podstawy? Po co mi gra? Jakby ta informacja była łatwo dostępna w internecie to bym nie pytał.
Jak na razie zauważyłem, że microsoft zamienił wchar_t na WCHAR, potem WCHAR na LPSTR, potem LPSTR na LPCWSTR. Jak oni tak kombinują to nie dziw się że może trudno komuś nadążyć.

3

https://en.cppreference.com/w/cpp/string/basic_string/to_string

johnny_Be_good napisał(a):

@ZrobieDobrze: czy ja nie pytam o podstawy? Po co mi gra? Jakby ta informacja była łatwo dostępna w internecie to bym nie pytał.
Jak na razie zauważyłem, że microsoft zamienił wchar_t na WCHAR, potem WCHAR na LPSTR, potem LPSTR na LPCWSTR. Jak oni tak kombinują to nie dziw się że może trudno komuś nadążyć.

Rzuciłeś się na głęboką wodę, weź najpierw jakiś kurs przeczytaj z podstawami.
Czy uważasz że przez całą twoją zabawę w programowanie ktoś za ciebie będzie informacje wyszukiwał?

4
johnny_Be_good napisał(a):

@ZrobieDobrze: czy ja nie pytam o podstawy? Po co mi gra? Jakby ta informacja była łatwo dostępna w internecie to bym nie pytał.
Jak na razie zauważyłem, że microsoft zamienił wchar_t na WCHAR, potem WCHAR na LPSTR, potem LPSTR na LPCWSTR. Jak oni tak kombinują to nie dziw się że może trudno komuś nadążyć.

Ta "złosliwa zmiana w ostatniej chwili" ma więcej lat niż ty. Sięga archaicznych kompilatorów C (stąd te poziomy) na bardzo słabych komputerach
Za "moich czasów" jak ktoś chciał grzebać w WIn API, brał np Petzolda w ręce. Ale kto miał głowę na karku, uciekał z tego jak najszybciej

Porwałeś się z motyką na słońce na (muzealne) Win API bez czytania czegokolwiek.

I jeszcze jedno: funkcja konwersji integera na C-string jest też w standardowej bibliotece, nie musimy sięgać do żadnego niedobrego Micrsotu.
Brak ci elementarza

0

Dla wiedzy potomnych

            int cxScreen, cyScreen;
            cxScreen = GetSystemMetrics(SM_CXSCREEN);
            string str_ll;
            str_ll = std::to_string(cxScreen);
            const char* cstr = str_ll.c_str();
            SetWindowTextA(hText, cstr); //hText - uchwyt do okna
0

Kod VS C++
Program pobiera rozdzielczość z systemu, zamienia ją na łańcuch znaków, wprowadza do okna (hText), potem odczytuje tą wartość z okna, zamienia na typ całkowity, mnoży razy dwa, zamienia na łańcuch znaków i wprowadza do okna nr 2 (hText2).
Jest to kod wykorzystujący zwykłe znaki (1 - bajtowe) a nie widechars (2-bajtowe).

               int cxScreen;
               cxScreen = GetSystemMetrics(SM_CXSCREEN);
               string tmp_str;
               tmp_str = std::to_string(cxScreen);
               SetWindowTextA(hText, tmp_str.c_str());
               char tas[20];
               GetWindowTextA(hText, (LPSTR)tas, 20);
               std:string tmp_str2(tas);
               int i = stoi(tmp_str2);
               i = i * 2;
               string str_2;
               str_2 = std::to_string(i);
               SetWindowTextA(hText2, str_2.c_str());
0

Po co odczytujesz tę wartość zamiast użyć posiadanej już wartości cxScreen?

0

Żeby przetestować odczyt stringa i zamianę na liczbę(i potem znowu na string). Taki jest cel tego całego wątku. Pół dnia się nie mogłem doprosić nikogo tu tych paru linijek.

1

wiesz wiem chłopaki może zbyt cięto ale chcesz mi powiedzieć że pół dnia nie mogłeś zlokalizować std::to_string? Niemniej chciałbym się odnieść to jednej sprawy bo nie wiem czy wiesz czy nie.

            string str_ll;
            str_ll = std::to_string(cxScreen);
            const char* cstr = str_ll.c_str();

Taka uwaga żebyś na c_str uważał to wskaźnik na zasób jak sama deklaracja funkcji mówi, i co się stanie jak string zostanie zniszczony? U ciebie raczej to nie będzie problem ale chciałem zwrócić na to uwagę.

1 użytkowników online, w tym zalogowanych: 0, gości: 1