Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++, WinApi] Jak skonwertować int na char?

Ostatnio zmodyfikowano 2010-06-12 13:48
Autor Wiadomość
SeaMonster131
Temat założony przez niniejszego użytkownika
[C++, WinApi] Jak skonwertować int na char?
» 2010-06-12 09:19:35
Powiedzmy że mam sobie zmienną int cos = 10;
Chciałem ją wyświetlić:
TextOut( kon, 50, 40, cos, 1 );
Ale tutaj to jeszcze bym musiał podać liczbę liter (cyfr), a ta liczba [10] będzie się zmieniać.
Zrobiłem więc pole edycji:
hEdit = CreateWindowEx( 0, WC_EDIT, cos, WS_CHILD + WS_VISIBLE + ES_READONLY, 50, 40, 200, 20, hwnd, 0, * hInst, 0 );
Ale tutaj wyskakuje mi błąd:

\winapi\Gra\main.cpp||In function `LRESULT WndProc(HWND__*, UINT, WPARAM, LPARAM)':|
\winapi\Gra\main.cpp|78|error: invalid conversion from `int' to `const CHAR*'|
\winapi\Gra\main.cpp|78|error:   initializing argument 3 of `HWND__* CreateWindowExA(DWORD, const CHAR*, const CHAR*, DWORD, int, int, int, int, HWND__*, HMENU__*, HINSTANCE__*, void*)'|
||=== Build finished: 2 errors, 0 warnings ===|

Pomożecie mi? A może znacie jeszcze jakąś inną funkcje do wyświetlania tekstu i liczb?
P-17923
michalp
» 2010-06-12 10:32:27
P-17925
filipesq
» 2010-06-12 11:04:18
Ewentualnie możesz też używać stringów:
- Konwertujesz int na string (na forum jest jak to zrobić- ja pytałem)
- Podczas podawania stringa jako parametr funkcji piszesz po nazwie stringa ".c_str()" - czyli zmieniasz string na contst char[].
P-17926
SeaMonster131
Temat założony przez niniejszego użytkownika
» 2010-06-12 11:31:50
@filipesq zrobiłem tak jak mówiłeś, ale wyskoczyły 2 błędy:

\winapi\Gra\main.cpp||In function `LRESULT WndProc(HWND__*, UINT, WPARAM, LPARAM)':|
\winapi\Gra\main.cpp|121|error: `c_str' has not been declared|
\winapi\Gra\main.cpp|121|error: request for member of non-aggregate type before '(' token|
||=== Build finished: 2 errors, 0 warnings ===|

Czyli te .c_str() nie jest zadeklarowane. To w jakiej to jest bibliotece?

A fragmenty kodu tak wyglądają:
C/C++
int StringToInt( const std::string & text )
{
    std::istringstream ss( text );
    int result;
    ss >> result;
    return result;
}
C/C++
int cos = 50;
cos = StringToInt( "14" );
TextOut( kon, 90, 40, cos.c_str(), 2 );
P-17929
malan
» 2010-06-12 11:41:23
Ty masz tu "zamienić" int -> char, a nie int -> int. 4 argumentem TextOut jest const char*, a nie int.
P-17930
michalp
» 2010-06-12 11:41:24
Spójrz jeszcze raz na kod. Czy aby na pewno typ int miał metodę .c_str()?
P-17931
SeaMonster131
Temat założony przez niniejszego użytkownika
» 2010-06-12 11:54:07
Nie no, nie wykombinuje. Męcze sie i mecze, ale nadal nie wiem gdzie jest błąd... Według mnie int zamienia sie na string, ale jeżeli piszecie że tak nie jest i program sie nie kompiluje to tak nie jest. Nie wiem... :/
P-17934
michalp
» 2010-06-12 11:57:23
Nie sądzę żebyś się zmęczył. To twój problem i tym masz go rozwiązać a nie brać kawałki kodu i próbować je sklejać. Gdybyś zobaczył link który ci podałem to byś miał mniej problemów bo wystarczy że użyjesz funkcji itoa.

Według mnie int zamienia sie na string, ale jeżeli piszecie że tak nie jest i program sie nie kompiluje to tak nie jest.
int StringToInt( const std::string & text )
Jak ta funkcja się nazywa?
StringToInt
Na jakiej podstawie uważasz, że ona konwertuje int -> std::string? Przecież wystarczy chwilę popatrzeć. Co ciężko?
P-17935
« 1 » 2
  Strona 1 z 2 Następna strona