본문 바로가기

카테고리 없음

[C++] 실수를 문자로 - ecvt()

void main(void)
{
	double num;
	char *str;
	int count, sign;
	cout << "실수를 입력해 주세요 : ";
	cin >> num;

	str = ecvt(num, 5, &count, &sign);
	cout << "변환된 실수 = " << str << endl;
	cout << "소수점의 위치 = " << count << "부호 = " << sign << endl;
}

프로그램 실행화면


char *ecvt(double value, int count, int *dec, int *sign);


실수를 문자 또는 문자열로 바꾸어 주는 함수이다. 조금 복잡한 함수이고 결과값도 가공을 해야지 정확한 값이 된다. 우선 이 함수는 반환값이 char * 즉 포인터이다.


첫 번째 인자로 넘어간 실수가 문자열로 변환되어 그 주소값이 반환되는 것이다. 두 번째 인자는 문자열을 몇 번째 자리까지 생성할 것인지 정해주는 역할을 한다.


위의 프로그램은 5를 입력했기 때문에 출력된 값이 31400으로 5자리 인 것을 알 수 있다. 3번째 인자는 소수점의 위치를 알려준다.


반환된 값은 소수자리 구분 없이 해당 숫자가 그대로 문자로 치환된 형태이다 소수점의 자리값 정보가 있어야 원래 값으로 복원할 수 있다.


그리고 마지막 4번째 인자는 입력된 실수의 부호가 저장된다. 양수이면 0, 음수이면 1이 저장된다.