Zamiana na: [jeszcze jeden taki temat a usuwam]

0

[code]
case WM_COMMAND:
switch(HIWORD(wParam))//sprawdzasz czy kliknieto
{
case BN_CLICKED:
switch(LOWORD(wParam))//sprawdzasz na co kliknieto ;)
{
case 103:
GetDlgItemText(hwnd, 101, levmap.wwx, 255);
GetDlgItemText(hwnd, 102, levmap.wwy, 255);
levmap.w[levmap.ww[0]][levmap.ww[1]] = 0;
mapE.write();
break;
}
break;
}
return 0;
[/code]

Zmienna levmap.wwx i wwy muszą być typu char ponieważ funkcja getdlgitemtext pobiera informacje tylko i wyłąćznie do zmiennej typu char. Ale char nie moze byc uzyte w formie tablica[char][char]. Jak spowodować żeby informacje z char zostały przekazane do int? Może cos w stylu IntToStr()?

0

char c;
int i=c;

A jesli myslisz o czyms takim...

char c=...;
jakistyp tablica [c][c];

...to szybko o tym zapomnij. (constant value expected - czy jakoś tak)

char i=dx;
jakistyp** tablica=new jakistyp*[dx];
while(i--)tablica[i]=new jakistyp[dy];

W ten sposób uzyskasz tablicę tablica[dx][dy]

Chyba że nie zrozumiałem, a ty używasz zmiennej typu char tylko do indeksowania... Wtedy lepiej może uzyc unsigned char, albo ustawić w opcjach kompilatora char jako unsigned.

// dopisane... Czuć od ciebie na kilometr nawykami z pascala, więc może zapamiętaj... char w c jest odpowiednikiem pascalowych byte, char, boolean oraz shortint, to czy ma zakres 0-255, czy -128-127 zalezy tylko od ustawień kompilatora i/lub modyfikatora signed/unsigned.

0

To ja jeszcze dopowiem, że jeśli to jest typ jednoznakowy (n. [code]char a;[/code]), i jest w nim zapisana liczba w postaci kodu ASCII, to możesz zrobić tak:

char a = '1';
int liczba = a-48;
0

Z lekka nie rozumiem :(. Słyszałem o atoi. Tyle ze atoi ma jedną wadę. Nie obsługuje atoi(char[x]) tylko atoi(char) a w przypadku atoi(char) gdy pojawiajo sie dwie litery wyswietlajo sie błedy.

0

w c++ typem dla ciągu znaków jest *char, a nie char
(właściwie to *char jest wskaźnikiem na początek tablicy char).
Sam typ char służy do przechowywania jednego znaku.

PS> atoi(*char), a nie atoi(char) - jest zasadnicza różnica...

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