|
은영 님이 쓰신 글 :
: 처음 공부하려니 어렵군요.
: 책을 3권이나 뒤져봐도 기초는 없네요.
:
: 제가 텍스트박스에 숫자를 넣어서
: 이것을 10진수와 16진수로 표시하려 하는데요.
: 문제는
: 즉 텍스트 박스에 숫자를 넣으면 입력된 값이 문자로 입력되는데요.
: 이것을 숫자로 10진수와 16진수로 바꾸는 함수가 뭔지 모르겠습니다.
: C에서는 atol 함수를 썼었는데 빌더에서는 아닌거 같고요
: 즉
: long a;
: a = atol(Edit1->Caption);
: 이렇게 하면 에러가 나고요.
:
: 또한 숫자(Edit1)와 숫자(Edit2)에 입력하여 덧셈을 구하는 함수를
: 아시면 알켜주시면 정말 감사하겠습니다.
:
:
빌더에는 AnsiString 이란게 있습니다. 이것에 대해 찾아보시면 됩니다.
Edit1->Caption 은 AnsiString 입니다.
포인터와는 약간 다르죠. atoi 는 (char *) 형을 int 로 바꾸는 함수입니다.
당연히 AnsiString 은 (char *) 이 아니므로 에러가 나죠.
참고로 AnsiString 을 (char *) 형으로 바꾸려면 .c_str() 을 사용하시면 됩니다.
그리고 AnsiString 형을 정수형으로 바꾸려면
StrToInt(Edit1->Caption) 이렇게 해도 되고
Edit1->Caption.ToInt() 이렇게 해도 됩니다.
그리고 정수형을 16진수형으로 바꾸는 것은 IntToHex 를 사용해보십시오.
Help 에는 다음과 같이 나와있군요.
--------------------------------------------------------------------------
Description
Converts a number into a string containing the number's hexadecimal (base 16) representation.
static AnsiString __fastcall IntToHex(int value, int digits);
Value is the number to convert. Digits indicates the minimum number of hexadecimal digits.
------------------------------------------------------------------------------------------
|