정말 간단하던걸 까먹고 있었다..
그것도 모르고 char에서 아스키코드값을 빼서 int형으로 알아먹게 코드를 짜고 있었다.
얼마나 어리석었는지
char -> int로 바꿀 때
atoi(const char* _String)함수를 사용하면 된다.
바꾸고싶은 문자열을 인자로 전달하면 된다.
1
2
3
|
int integer;
char alpha[10] = "example";
integer = atoi(alpha);
|
cs |
int -> char로 바꿀 때
itoa(itoa(int _Value, char * _Buffer, int _Radix)함수를 사용한다.
_Value - 바꾸고 싶은 정수를 넣는다.
_Buffer - 정수를 저장할 버퍼
_Radix - 몇 진수 형태로 저장할지 지정한다
2를 넣으면 2진수로, 10을 넣으면 10진수로 저장된다.
1
2
3
|
int answer = 1;
char buf[BUFSIZE + 1];
_itoa(answer, buf, 10);
|
cs |
아래는 직접 써먹은 코드 부분
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
//클라이언트
scanf("%d", &answer);
_itoa(answer, buf, 10);
retval = send(sock, buf,
strlen(buf), 0);
if (retval == SOCKET_ERROR)
{
err_display("send()");
break;
}
//서버
retval = recv(client_sock, buf, BUFSIZE, 0);
if (retval == SOCKET_ERROR)
{
err_display("recv()");
break;
}
else if (retval == 0)
break;
buf[retval] = '\0';
answer = atoi(buf);
printf("Answer: %d\n", answer);
|
cs |
아토이, 이토아 헷갈릴 때에는
int to alpha (itoa)
alpha to int (atoi)
이렇게 기억하도록 하자
'프로그래밍 > [TCP_IP]소켓 프로그래밍' 카테고리의 다른 글
[TCP/IP] 소켓 정수 전송, 캐스팅으로 간단히 (0) | 2019.10.12 |
---|---|
[TCP/IP] 구조체 보내기 (0) | 2019.09.26 |