본문 바로가기

Programming/C++16

[C++] inet_addr, htons 함수 2013년 1월 8일 우리가 흔히 쓰는 IP주소는 255.255.255.0 형태의 32bit 주소(IPv4)를 사용한다. 이것은 우리가 알아보기 쉬운 형태의 표기 방법이고 winsock에서 IP 저장방식은 32bit unsigned long integer 타입이다. 이 unsigned long integer의 구성은 '.'당 8bit씩 4개의 값을 왼쪽에서 오른쪽으로 배열한다. 예를 들면 255.255.255.0은 0xFF.0xFF.0xFF.0이다. 이를 왼쪽에서 오른쪽으로 배열하면 0xFFFFFF00이 된다. 문자열 형태의 IP주소 값을 이렇게 unsigned long 타입의 값으로 변환해 주는 것이 inet_addr 함수 이다. 예제 소스 void main( void ) { WSADATA wsaDat.. 2013. 4. 11.
[C++] static const에 대한 고찰 2013년 1월 7일 전역변수나 static으로 선언된 변수는 메모리의 데이터영역에 보관이 되고 있는데 이펙티브 C++을 보던중에 전역으로 선언된 static const 변수는 메모리가 잡히지 않을 거라고하는 부분이 있었다. 구체적으로는 이유가 적혀 있지 않고 언급만 되어 있어서 기욱이형이랑 테스트 해본 결과 정말 그 부분에서만메모리 주소를 알 수가 없었다.. 읽고 쓸수 있는 RAM에 저장 되지 않고 ROM에 저장이 된다 정도의 확실치 않은 정보만 얻을 수 있었다. static const int a = 3;main(){int *b = &a;printf("%d\n", &a);} 물어물어 알아본 결과 전역 static const 의 경우 쓰이는 부분이 없다면 메모리에 올리지 않고, main에서 처럼 쓸려고 .. 2013. 4. 11.
[C++] strtok 함수 2013년 1월 7일 ifstream 클래스를 사용하면서 문자열을 구간별로 끊어 읽어들이는 것이 필요했다. 그래서 사용하게 된 strtok.. 구분자를 통해 문자열을 구분할 수 있도록 해주는 함수이다. 예제 소스 std::ifstream infile; infile.open( "..Data.csv", std::ios::in | std::ios::binary ); char szLine[4096] = { 0, }; infile.getline( szLine, 4096 ); ZeroMemory( szLine, sizeof(szLine) ); while( !infile.eof() ) { infile.getline( szLine , 4096 ); char szTemp[64] = { 0, }; char *pToken .. 2013. 4. 11.
[C++] ifstream 클래스 2013년 1월 7일 임시로 파일을 읽어들이는 부분이 필요해서 ifstream에 대해 공부해보게 됐다. 전부터 파일 입출력은 좀 꺼려졌었는데 이 참에 한번 파보자고 마음 먹었다. 먼저 ifstream은 싱글 바이트 문자 데이터를 순차적으로 파일에서 읽는데 사용할 스트림을 정의 한다. basic_ifstream 클래스가 typedef 된 형태이다. 예제소스 std::ifstream infile; infile.open( "..Data.csv", std::ios::in | std::ios::binary ); if( !infile.is_open() ) { return false; } char szLine[4096] = { 0, }; infile.getline( szLine, 4096 ); printf( "%s".. 2013. 4. 11.